在linux-bash中查找不使用-mtime和-daystart参数的命令

时间:2017-02-23 18:14:57

标签: shell unix find gnu-findutils

我试图在-daystart命令中找到10分钟前创建并使用find参数创建的文件(即创建/修改超过10分钟但小于daystart),但是{{ 1}}取优先级,-mmin被忽略。任何有关解决此问题的建议和意见表示赞赏。

以下输出显示-daystart被忽略,理想情况下只列出-daystart文件:

test

1 个答案:

答案 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