![可以找到显示目录及其所含目录的时间戳吗?](https://linux22.com/image/566068/%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%E6%98%BE%E7%A4%BA%E7%9B%AE%E5%BD%95%E5%8F%8A%E5%85%B6%E6%89%80%E5%90%AB%E7%9B%AE%E5%BD%95%E7%9A%84%E6%97%B6%E9%97%B4%E6%88%B3%E5%90%97%EF%BC%9F.png)
我有一个脚本可以清除日志区域中的旧文件和目录,例如:
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。