Поскольку этот вопрос постоянно находится на вершине Google, когда я сам это ищу:
Другие ответы страдают от разных проблем:
Некоторые из них включают . и .., который является шумным, запутанным и раздражающим. Некоторые из них забывают скрытые файлы (файлы, начинающиеся с точки). Они не удаляются в правильном (в самом начале) порядке, чтобы разрешить удаление каталога. Они спускаются в другие (смонтированные) файловые системы, что часто нежелательно. Их трудно расширить с дополнительными параметрами (подробнее об этом ниже).find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Обратите внимание, что я добавил аргумент -xdev, чтобы предотвратить спуск в mounts (например [ f6] и т. д.).
Несмотря на то, что люди постоянно меня заворачивают, эти методы имеют недостаток: это не похоже на они достаточно расширяемы, чтобы позволить -prune вводить подкаталог (не вводя больше проблем). В отличие от этого метода вы можете вставить
-not \( -path "${DIR}/subdir" -prune \)
перед аргументом -mindepth, чтобы исключить subdir из его содержимого.