加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹤壁站长网 (https://www.0392zz.cn/)- 分布式云、存储数据、视频终端、媒体处理、内容创作!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux find命令详解--转

发布时间:2021-02-05 20:31:19 所属栏目:Linux 来源:网络整理
导读:转自:http://blog.csdn.net/jakee304/article/details/1792830 (一)Get Start 最简单的find用法莫过于如此: $?find? . 查找当前目录下的所有文件。 find命令的一般格式为: find?[ - H]?[ - L]?[ - P]?[path ... ]?[expression] 其中,'-H' '-L' '-P'三

那么,将上面两个-print都替换为-prune,这两条命令分别输出什么?

linux find命令详解--转 这就是答案,如果你答对了,恭喜你,你已经掌握了find命令!-prune经常和-path或-wholename一起使用,以避开某个目录,常见的形式是:

linux find命令详解--转

?-o?-path?)?-prune?-o?-path?

注意:如果同时使用-depth设置项,那么-prune将被find命令忽略。man手册页中这么说:"If -depth is given,false; no effect."说到这里,又得说说-depth设置项。网上好多资料说-depth设置项的功能是“在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找”,这明显是错误的,man手册页中如是说:"-depth Process each directory's? contents before the directory itself."。这有点像树的后序遍历,先遍历当前节点的所有子节点,然后再访问当前节点...考考你:下面的命令输出什么?为什么?

linux find命令详解--转"*.c"?-print

(七)时间戳

理解了上面几节,你已经掌握了find命令的“道” ^_^ ,下面这几节只是介绍一些常用、好用的“招式”。这一节介绍时间戳。文件有三个时间属性:创建时间、最近修改时间、最近访问时间。最近修改时间又包括两种,一是文件的状态(也即权限如rwx等)最近被修改时间,一是文件的数据(也即内容)最近被修改时间。touch命令改变的即是文件数据最近被修改时间。最近访问时间,指的是最近一次文件数据(内容)被访问的时间。因此,使用ls命令输出文件的相关信息并不会修改文件的最近访问时间。find命令提供了针对文件的最近访问时间、文件状态最近被修改时间、文件数据最近被修改时间进行匹配的测试项,分别是-amin,-cmin,-mmin和-atime,-ctime,-mtime两组,第一组基于分钟,第二组基于天。以-amin为例,假设当前时间tnow="2007-11-12 14:42:10"、t1="2007-11-12 14:39:10"、t2="2007-11-12 14:40:10",那么要查找最近访问时间属于[t1,t2]时间段的文件,可以这么写:

linux find命令详解--转3

若测试项参数是数字,则基本上都可以在数字参数前加"+"或者"-"号,表示“大于”或“小于”的意思,因此,要查找最近访问时间属于[t1,tnow]时间段的文件,可以这么写:

linux find命令详解--转3

"-amin?n"和"-atime?n"的处理方法都是:根据当前时间和文件的相应时间属性求n值,然后比较n值和参数n,看是否符合要求。但是这个求n值的过程却有很大不同,他们的不同也代表了两组(基于分钟和基于天)的不同:"-amin?n"

1、求Δt,用当前时间减去文件对应属性的时间值即得到Δt,Δt = tnow - tfile;2、求浮点数f,用Δt除以1分钟,f = Δt / 1min;3、将f的小数部分入到整数部分,得到n。即,不管f是6.0102还是6.8901,n都等于7

(编辑:鹤壁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读