可以找到显示目录及其所含目录的时间戳吗?

可以找到显示目录及其所含目录的时间戳吗?

我有一个脚本可以清除日志区域中的旧文件和目录,例如:

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。

相关内容