Как удалить каталог, который имеет много подкаталогов?
У меня есть каталог со многими подкаталогами. Я пытался делать
rm -rf mydirectory
но он все еще работал через 1 час. Я попытался получить количество подкаталогов с
ls -l . | egrep -c '^-'
но это не закончилось через 30 минут.
Есть ли более быстрый способ рекурсивного удаления всего каталога?
2 ответа
/usr/bin/find /mydir_with_many_subdirs -exec rm {} \;
Вы также можете фильтровать с
/usr/bin/find /mydir_with_many_subdirs -type f -exec rm {} \; -- will delete all files
/usr/bin/find /mydir_with_many_subdirs -mtime +10 -exec rm {} \; -- will delete dirs and files older then 10
человек найдет больше фильтров, которые вы можете применить.
Это должно работать, но я бы не использовал опцию -f. И я бы не хотел запускать эту команду от имени root! Если есть какие-нибудь символические ссылки, которые ссылаются на /var/log или /usr/lib, то вы столкнетесь с проблемами быстрее, чем вы скажете "OMGWTF!"
Это, вероятно, также проблема, с которой вы здесь сталкиваетесь - есть символические ссылки, которые либо идут в очень большие каталоги, либо символические ссылки, которые входят в какой-то бесконечный цикл. Это не займет много времени, чтобы удалить небольшой каталог, который не так много, чтобы вернуться.