我使用的是 IBM AIX Unix,它的命令选项受到限制。我想使用 find 和 mtime (有效)选项来实现以下过滤条件。我想删除以下过滤条件列出的文件。
- 以数字 [0-9] 开头的文件
- 以“.dat”结尾
- 持续时间为2018年8月1日至2018年10月15日
我尝试使用 find 命令,但没有多大帮助。
find /mydirectory -type f -mtime -45 -mtime +5
答案1
该find
命令寻找文件之类的东西和上次修改内容不到 45 天前和上次修改内容已超过 5 天前。 (“AND”限制数据集,而不是放大它。如果您愿意,可以将其读作“that are also”。)
假设您已匹配绝对日期范围,现在只需添加一个子句来完成您指定的一组条件:
find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*' -name '*.dat'
稍微优化一下,这两个命名标准
- 以数字 [0-9] 开头的文件
- 以“.dat”结尾
可以合并到单个语句中:
- 匹配 glob 的文件(“shell 通配符模式”)
[0-9]*.dat
最后,你需要一个“删除匹配的文件“行动,我们可以用它来实施rm -f
,然后这将引导我们找到您所需的解决方案。
find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*.dat' -exec echo rm -f {} \;
当您看到它按照您的预期选择文件时,请记住从该命令中删除echo
,以便该命令rm
将被执行而不仅仅是打印。