【发布时间】:2024-07-29 11:20:02
【问题描述】:
我正在尝试在find 命令中查找 10 分钟前创建并使用 -daystart 参数(即创建/修改时间超过 10 分钟但小于 daystart)的文件,但 -mmin 正在使用优先级和-daystart 被忽略。任何解决此问题的建议和 cmet 表示赞赏。
下面的输出显示-daystart 被忽略,理想情况下应该只列出test 文件:
[rshetty@xxx ~]$ date
Thu Feb 23 12:06:14 CST 2017
[rshetty@xxx ~]$ find . -maxdepth 1 -type f -daystart -mmin +10 -exec ls -lrt {} \;
-rw-r--r--. 1 rshetty users 18 Jan 11 2015 ./.bash_logout
-rw-r--r--. 1 rshetty users 0 Feb 23 11:50 ./test
-rw-r--r--. 1 rshetty users 231 Jan 11 2015 ./.bashrc
-rw-r--r--. 1 rshetty users 193 Jan 11 2015 ./.bash_profile
【问题讨论】:
-
您确定
-daystart是您所需要的吗?尝试使用另一个-mmin或-mtime参数设置时间范围,例如-mmin +10 -mtime -1。 -
@Murphy 这是一个很酷的建议。谢谢!我仍然想知道为什么它不适用于 daystart。
-
(旁白:这不是一个真正的 bash 问题;从 ash/dash/ksh/zsh/fish 开始 find 或完全不使用 shell 运行它(即 @ 987654332@).
-
...另一边:
-exec ls -lrt {} \;表示您为找到的每个文件运行一次ls,这意味着它不能进行任何排序(-t如果它只给了一个文件!) -
@CharlesDuffy 没错,我对其他 shell 也有同样的问题。顺便说一句,我不介意 -exec ls -lrt {} \;部分是因为排序不是我的要求 - 但谢谢你提到它。
标签: shell unix find gnu-findutils