查找早于一分钟的所有文件

719*_*016 9 linux find

如何使用find选择在最后一分钟内已写入且未修改的文件?

我知道我可以反过来做,使用 查找在过去 60 秒内修改过的文件-mtime -60s,但我想要在过去 60 秒内未修改的文件。

如果我使用秒,我使用 Linux 并收到此错误:

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'
Run Code Online (Sandbox Code Playgroud)

Sie*_*geX 15

find . -type f -mmin +1
Run Code Online (Sandbox Code Playgroud)

例子

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt
Run Code Online (Sandbox Code Playgroud)


Dan*_*eck 13

find /path -type f -mtime +60s

-刚刚的数字之前是不是正规“的说法冲刺”,而是指“小于”。+然后是“超过”。

来自man find

所有采用数字参数的原色都允许数字前面有加号(“+”)或减号(“-”)。前面的加号表示“大于 n”,前面的减号表示“小于 n”,两者都不表示“正好 n”。

应该注意的是,对于恰好 n,时间是四舍五入的。所以1(1 天)并不意味着 86400 秒。

  • 严格来说,`+60` 不是`-60` 的反义词,出于同样的原因,*小于* 不是*大于* 的反义词:两者都排除了它们比较的确切值。但是您的问题并没有确切地表明您想要哪种行为。 (2认同)
  • 是的,这在 Linux 上不起作用。至少 RHEL 5.6。不过,SiegeX 的以下响应确实有效。 (2认同)
  • 这在 CentOS 上不起作用。正如假设它在 Mac OS X 中工作 (2认同)