我试图在-daystart
命令中找到10分钟前创建并使用find
参数创建的文件(即创建/修改超过10分钟但小于daystart),但是{{ 1}}取优先级,-mmin
被忽略。任何有关解决此问题的建议和意见表示赞赏。
以下输出显示-daystart
被忽略,理想情况下只列出-daystart
文件:
test
答案 0 :(得分:2)
-daystart
修改-mtime
,-mmin
和相关谓词的含义,这些谓词基于时间相对(默认情况下)运行到现在;它不是一个谓词本身,所以除非你使用其中一个其他操作,否则它对你的find
命令的结果没有影响。
因此,如果您想过滤相对于当天开始的mtime,则需要指定,例如-mtime -1
, -daystart
之后相对于当前时间的过滤器应 -daystart
之前:
find . -type f -mmin +10 -daystart -mtime -1 -exec ls -lrt {} +
请注意,我们在 -mmin +10
之前指定-daystart
以使其相对于当前时间,但在<\ n>之后指定-mtime -1
/ em> -daystart
使那个相对于一天的开始。
注意+
而不是;
- ls -t
没有任何意义,如果您只为ls
的每个实例传递一个文件名,因为排序的是一个大小为1的列表将永远回来与完全相同的列表。有关对GNU find
按时返回的文件列表进行排序的更强大,更可靠的方法的讨论,请参阅BashFAQ #3。