У меня есть сценарий для очистки старых файлов и каталогов в области журнала, например:
find . -mtime +${NUM_DAYS} -type d -exec rm -rf '{}' \;
Однако, если я запустил эти два уровня вверх от файлов, которые изменились, он часто будет показывать родительский каталог, потому что отметка времени не изменяется при изменениях в подкаталоге
Есть ли способ использовать find (или что-то еще), чтобы я не пытался удалить родительский каталог?
Например, если у меня есть файловая система:
# ls -ld /var
drwxr-xr-x 24 root root 4096 Aug 16 2010 /var
# ls -ld /var/net-snmp/
drwx------ 2 root root 4096 Aug 28 15:49 /var/net-snmp/
# ls -l /var/net-snmp/
total 4
-rw------- 1 root root 1174 Aug 28 15:49 snmpd.conf
Выполнение моей команды поиска из / с будет пытаться рекурсивно удалить / var, даже если NUM_DAYS установлено так, что 28 августа находится в моей шкале времени
Предполагая, что Linux, я бы попробовал tmpwatch.
Вы можете использовать опцию -mindepth:
-mindepth levels
Do not apply any tests or actions at levels less than levels
(a non-negative integer). -mindepth 1 means process all files
except the command line arguments.