Как удалить каталог, который имеет много подкаталогов?

У меня есть каталог со многими подкаталогами. Я пытался делать

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!"

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

Другие вопросы по тегам