我有一个脚本可以清除日志区域中的旧文件和目录,例如:
find . -mtime +${NUM_DAYS} -type d -exec rm -rf '{}' \;
但是,如果我从已更改的文件向上运行这 2 级,它通常会显示父目录,因为子目录的更改不会改变时间戳
有没有什么方法可以使用 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
从 / 运行我的 find 命令将尝试递归删除 /var,即使设置了 NUM_DAYS 以使 8 月 28 日在我的时间范围内
答案1
您可以使用 -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.
答案2
假设是 Linux,我会尝试一下 tmpwatch。