shell脚本删除Linux中的空目录

时间:2020-03-05 15:31:45  来源:igfitidea点击:

本教程展示了如何使用shell脚本搜索空目录和递归删除。
如果系统管理员不想保留空目录,则此脚本可以快速删除所有这些脚本。

我们可以输入需要搜索空目录的路径。
脚本将在删除空目录之前确认。

Bash脚本删除空目录

#!/bin/bash
#Check if user input parameter, if not ask to enter directory
if [ x"" = "x" ]; then
#Ask user to input directory where to start search for empty directories.
echo -n "Please enter directory where to delete empty folders: "
#we read input
while read dir
do
#we check if input empty
test -z "$dir" && {
#if input empty – we ask once more to input directory
echo -n "Please enter directory: "
continue
}
#if entered no empty data – continue to do other things
break
done
#if user entered parameter do next:
else
#dirname will be passed parameter
dir=
fi
#this check if directory exist, exit if not
if [ ! -d $dir ]; then
echo "No such directory"
exit 1
fi
#We will store list of all directories in temporary file
DirList=/tmp/ditlist.tmp
# we search for all directories
find $dir -type d > $DirList
#writing all directories to vatiable
dirs=`cat $DirList`
#start checking every directory
for dir in $dirs
do
#we are checking if directory is empty
[ `ls $dir | wc -l` -lt 1 ] || continue
#this ask user if really delete directory
echo -n "Remove empty directory $dir: [No/yes] "
#reading users answer:
read answer
#Checing answer, if yes – we will delete folder, nothing in other case:
if [ "$answer" = "yes" ]; then
rmdir "$dir"
fi
done

shell脚本输出

让我们检查控制台输出我们的shell脚本

test@centos:~$rmempty.sh /tmp/test
Remove empty directory /tmp/test/test1: [No/yes] yes
Remove empty directory /tmp/test/test3/test5: [No/yes] yes
test@centos:~$