Ви можете почати з того, що сказати 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 {} +