将目录中的文件批量移动到某一目录下,并将删除目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
####################################################
#author: kymlin
#date: 2022-3-2
#document: 用于删除第一层目录
###################################################
set -o nounset
set -o errexit
#工作目录
workspace=/root/test
#移动到的目标路径
due_space=/root/test
n=$(ls $workspace)
#if [ $UID -eq 0 ];then
# echo "请不要使用root用户执行此脚本"
# exit
#fi
if [ $workspace = "/" ];then
echo "error due to rm -rf /"
exit
fi
for i in $n
do
if test -d $i;then
if [ "$(ls -A $i)" = "" ]; then
echo " $i is empty"
continue
else
mv $i/* $due_space
fi
else
echo "$i is not directory"
fi
done
echo "移动完成!"
for i in $n
do
if test -d $i;then
if [ "$(ls -A $i)" = "" ]; then
rm -rf $workspace/$i
echo "删除$i"
else
echo "$i is not empty"
fi

fi
done