2013-04-30 3 views
0

Я надеюсь запустить сценарий bash, который в значительной степени удалит любую папку внутри /storage/*, которая имеет общий размер менее 5 мегабайт. Проблемы, с которыми я сталкиваюсь, заключаются в том, что папки внутри /storage/* также имеют вспомогательные подпапки. Я хочу удалить его все, если он меньше 5 мегабайт ... Пока у меня есть следующие команды, любая дополнительная помощь, которую я могу получить, чтобы закончить этот скрипт, очень ценится!Bash script удалить папки общий размер

$ find /storage/ -type f -size -5M -delete 

ответ

1

Если вы хотите увидеть, что это будет удалить, удалить строку rm -rf $filename;

du -s ./storage/* | while read size filename; do if [ $size -lt 5120 ]; then echo "Deleting $filename"; rm -rf $filename; fi; done 

UPDATE: Это не будет удалять любые файлы внутри storage. Если вы хотите увидеть, что он будет удалять, удалите строку rm -rf $filename;.

du -s ./storage/*/ | while read size filename; do if [ $size -lt 5120 ]; then echo "Deleting $filename"; rm -rf "$filename"; fi; done 
+0

Как я могу просто перечислить папки, которые он будет удалять, так что я могу дважды проверить, работает ли эта команда? Я не хочу, чтобы он уничтожил всю мою папку под/storage/ – thevoipman

+0

@ thevoipman- Обновленный ответ .. – vidit

+0

Я заметил, что это также удалит мои файлы сценариев в папке/папке хранения ... в любом случае мы можем исключить несколько папок/имен файлов, которые мы не хотим удалять? – thevoipman

Смежные вопросы