Як і в попередніх відповідях (+1 для обох), хитрість полягає у використанні -type f
предиката.
Зауважте, що замість -exec rm '{}'
вас також можна використовувати -delete
присудок. Але не робіть цього. З -exec rm '{}'
вами ви можете (і повинні) спочатку зробити, -exec echo rm '{}'
щоб переконатися, що це дійсно те, що ви хочете. Після цього повторіть команду без echo
.
Використання -delete
швидше (без зайвих fork()
та execve()
для кожного файлу), але це ризиковано, оскільки -delete
працює також як умова, тому:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
але якщо ви САМО міняєте аргументами:
# delete ALL files
find . -type f -name '*.tmp' -delete
Якщо вам коли-небудь потрібно find
і rm
працювати швидше для тонни файлів, ознайомтеся з find ... | xargs ... rm
ідіомою UNIX.