![使用 -exec 和 -mtime 运行“find”命令时参数无效](https://linux22.com/image/658573/%E4%BD%BF%E7%94%A8%20-exec%20%E5%92%8C%20-mtime%20%E8%BF%90%E8%A1%8C%E2%80%9Cfind%E2%80%9D%E5%91%BD%E4%BB%A4%E6%97%B6%E5%8F%82%E6%95%B0%E6%97%A0%E6%95%88.png)
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 \;