首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找在linux-bash中不使用-mtime和-daystart参数的命令。

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

Stack Overflow用户
提问于 2017-02-23 18:14:56
回答 2查看 2K关注 0票数 4

我试图查找10分钟前创建的文件,并在find命令中使用find参数(即创建/修改了10分钟以上,但不到daystart)创建的文件,但是-mmin占据了优先级,-daystart被忽略。如有任何解决此问题的建议和意见,敬请见谅。

下面的输出显示-daystart被忽略,理想情况下只应该列出test文件:

代码语言:javascript
复制
[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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-24 22:30:32

-daystart修改了基于时间相对(默认情况下)操作的-mtime-mmin和相关谓词的含义;它本身不是谓词,所以除非您使用其他操作之一,否则它不会影响find命令的结果。

因此,如果您希望相对于当前一天的开始筛选时间,则需要指定它,就像在-mtime -1中那样,在-daystart之后(而相对于当前时间的过滤器应该在-daystart之前):

代码语言:javascript
复制
find . -type f -mmin +10 -daystart -mtime -1 -exec ls -lrt {} +

请注意,我们在-daystart之前指定了相对于当前时间的-daystart,但在-daystart之后指定-mtime -1使其相对于一天的开始。

注意,+而不是; --如果每个ls实例只传递一个文件名,那么ls -t就没有任何意义,因为排序一个大小的列表总是会返回相同的列表。有关按时间排序从GNU find返回的文件列表的更健壮和更可靠的方法的讨论,请参见BashFAQ #3

票数 4
EN

Stack Overflow用户

发布于 2017-02-23 20:40:13

由于您需要在过去10分钟内修改的文件或较少的,所以需要将-10传递给-mtime参数,而不是+10

代码语言:javascript
复制
find . -maxdepth 1 -type f -daystart -mmin -10 -exec ls -lrt {} \;

见本页:

  • http://mywiki.wooledge.org/UsingFind
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42423245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档