Скрипт шелла Linux для удаления пустых каталогов |

Скрипт шелла Linux для удаления пустых каталогов

Скрипты

Описание скрипта:

Скрипт шелла Linux, который ищет пустые каталоги и удаляет их.

Если системный администратор не хочет сохранять пустые каталоги, этот скрипт может быстро удалить все из них.

Вы можете ввести путь, в котором вам нужно искать пустые каталоги.

Сценарий будет подтвержден до удаления пустого каталога.

Содержание скрипта:

#!/bin/bash
#Check if user input parameter, if not ask to enter directory
if [ x"$1" = "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=$1
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

Вывод скрипта:

# rmempty.sh /tmp/test
Remove empty directory /tmp/test/test1: [No/yes] yes
Remove empty directory /tmp/test/test3/test5: [No/yes] yes 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Осип

    Во первых это не работает.
    Во вторых: find /path/to/dir -empty -type d -delete

    Ответить
    1. cryptoparty автор

      В кривых руках ничего не работает 🙂

      Ответить