使用 -exec 和 -mtime 运行“find”命令时参数无效

使用 -exec 和 -mtime 运行“find”命令时参数无效

Centos 上出现了相当奇怪的错误消息。

我尝试运行这个命令:

find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;

我得到的错误是:

find: invalid argument `-exec' to `-mtime'

在其他发行版中,“查找”会有所不同吗?

答案1

-mtime使用几天,如果你需要 2 个小时,请检查以下内容:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

mmin 指定分钟数,因此 -mmin +120 将过滤超过 120 分钟(2 小时)之前的数据。手册中写道:

-m时间 n

文件数据的最后修改时间为 n*24 小时前。请参阅 -atime 的注释,了解舍入如何影响文件修改时间的解释。

-最小值

文件数据最后修改于 n 分钟前。

答案2

MacOS 上的实现find与 Linux 上的实现略有不同。我相信您在 Linux 系统上遇到了上述错误。

在 Linux 上,mtime仅接受 +- 和一个数字。数字是天数。

对于你想做的事情你必须使用mmin

-mmin n
      File’s data was last modified n minutes ago.

此命令应该在 Linux 上运行:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

相关内容