Вы могли бы начать, сказав find /var/dtpdev/tmp/ -type f -mtime +15
. При этом будут найдены все файлы старше 15 дней и напечатаны их имена. При желании вы можете указать -print
в конце команды, но это действие по умолчанию. Желательно сначала выполнить вышеуказанную команду, чтобы увидеть, какие файлы выбраны.
После того, как вы убедитесь, что find
команда выводит список файлов, которые вы хотите удалить (и никаких других), вы можете добавить «действие» для удаления файлов. Типичные действия для этого:
-exec rm -f {} \;
(или, что то же самое -exec rm -f {} ';'
)
Это будет выполняться rm -f
для каждого файла; например,
rm -f /var/dtpdev/tmp/A1/B1; rm -f /var/dtpdev/tmp/A1/B2; rm -f /var/dtpdev/tmp/A1/B3; …
-exec rm -f {} +
Это будет работать rm -f
на многих файлах одновременно; например,
rm -f /var/dtpdev/tmp/A1/B1 /var/dtpdev/tmp/A1/B2 /var/dtpdev/tmp/A1/B3 …
поэтому он может быть немного быстрее, чем вариант 1. (Может потребоваться запустить rm -f
несколько раз, если у вас есть тысячи файлов.)
-delete
Это говорит find
само за себя, чтобы удалить файлы, без запуска rm
. Это может быть бесконечно быстрее, чем -exec
варианты, но это не будет работать на всех системах.
Итак, если вы используете вариант 2, вся команда будет выглядеть так:
find /var/dtpdev/tmp/ -type f -mtime +15 -exec rm -f {} +