我试图查找10分钟前创建的文件,并在find命令中使用find参数(即创建/修改了10分钟以上,但不到daystart)创建的文件,但是-mmin占据了优先级,-daystart被忽略。如有任何解决此问题的建议和意见,敬请见谅。
下面的输出显示-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发布于 2017-02-24 22:30:32
-daystart修改了基于时间相对(默认情况下)操作的-mtime、-mmin和相关谓词的含义;它本身不是谓词,所以除非您使用其他操作之一,否则它不会影响find命令的结果。
因此,如果您希望相对于当前一天的开始筛选时间,则需要指定它,就像在-mtime -1中那样,在-daystart之后(而相对于当前时间的过滤器应该在-daystart之前):
find . -type f -mmin +10 -daystart -mtime -1 -exec ls -lrt {} +请注意,我们在-daystart之前指定了相对于当前时间的-daystart,但在-daystart之后指定-mtime -1使其相对于一天的开始。
注意,+而不是; --如果每个ls实例只传递一个文件名,那么ls -t就没有任何意义,因为排序一个大小的列表总是会返回相同的列表。有关按时间排序从GNU find返回的文件列表的更健壮和更可靠的方法的讨论,请参见BashFAQ #3。
发布于 2017-02-23 20:40:13
由于您需要在过去10分钟内修改的文件或较少的,所以需要将-10传递给-mtime参数,而不是+10。
find . -maxdepth 1 -type f -daystart -mmin -10 -exec ls -lrt {} \;见本页:
https://stackoverflow.com/questions/42423245
复制相似问题