我想查找晚于 15 秒但早于 2 秒的文件。这是我当前正在使用的脚本,它可以抓取 15 秒内更新的文件:
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
任何帮助是极大的赞赏
答案1
您可以通过链接多个谓词来组合它们。
没有-oldermt
,但你可以将其写为-not -newermt
。
你要:
-newermt '-15 seconds'
表示该文件的创建时间不到 15 秒,并且-not -newermt '-2 seconds'
表示文件已存在超过 2 秒
尝试:
find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'
或者,为了符合 POSIX 标准:
find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'
另外,正如您(和其他读者)所知,“较新”意味着最近修改过,而不是最近创建过。
答案2
你没有提到你的操作系统......
这对于现代 find 实现(例如 FreeBSD 或sfind
.
find /my/directory -name '*.jpg' -mtime -15s -mtime +2s
Sfind 是 Schily 工具的一部分:http://sourceforge.net/projects/schilytools/files/
警告:我刚刚发现sfind
.如果-mtime
参数小于 60 秒,则它将无法正常工作,因为当前的文件时间与最初为 的年份切换计算的未来 60 秒的时间戳进行比较-ls
。
BTW:-not
不属于find
,它是一个不可移植的 GNUism。