Назад | Перейти на главную страницу

Рекурсивное удаление файлов (bash)

Я знаком с тем, как решить эту проблему с помощью PHP, однако мне хотелось бы попрактиковаться в написании сценариев на bash.

Задача - удалить все файлы в папке, которая сама содержит подпапки (с файлами). Обычно это файлы .pdf (или какой-либо вариант: PDF, Pdf, pDf и т. Д.), Однако иногда могут быть другие типы файлов, включая расширения, которые мне неизвестны в настоящее время.

Вот что у меня есть на данный момент. Он повторяет имя файла, но если я введу rm $ i, система вернет файл, который не найден в каждом файле.

for i in `ls -bRC1 /foo/temp_folders/* ` ; do echo $i ; rm $i ; done

Как мне принудительно указать абсолютный путь при выдаче rm $ i?

Пер Зоредаш ... почему бы и нет:
find /foo/temp_folders/ -type f -iname * -exec rm {} +

Изменить: изменил конечный \; на + для производительности, как указано Вот

find -exec будет медленным на большом количестве файлов. Я бы посоветовал:

find /foo/temp_folders -type f -print0 | xargs -0 rm