linux find命令学习
find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。
选项-name的参数指定了文件名所必须匹配的字符串。我们可以将通配符作为参数使用。

而-iname参数则是忽略大小写。

如果想匹配多个条件中的一个,可以采用OR条件操作:

如果是且的条件则可以什么都不写,也可以写-and。


选项-path可以使用通配符来匹配文件路径或文件。-path将文件路径作为一个整体进行匹配。

选项-regex基于正则表达式来匹配文件路径的。

可以用!否定参数的含义。

find命令在使用时会遍历所有的子目录。我们可以采用一些深度参数来限制find命令遍历的深度。-maxdepth和-mindepth就是这类参数。
如果只需在当前目录中进行检索,则可以设定最大深度-maxdepth为1:

而最小深度-mindepth则可以用来查找那些距离起始路径超过一定深度的所有文件。

-type选项可以根据文件类型来进行搜索。

下表显示了所有的文件类型参数:
| 文件类型 | 类型参数 | 
| 普通文件 | f | 
| 符号链接 | l | 
| 目录 | d | 
| 字符设备 | c | 
| 块设备 | b | 
| 套接字 | s | 
| Fifo | p | 
Linux文件系统中的每一个文件都有三种时间戳,如下所示:
· 访问时间(-atime):用户最近一次访问文件的时间。
· 修改时间(-mtime):文件内容最后一次被修改的时间。
· 变化时间(-ctime):文件元数据最后一次改变的时间。
在Linux中没有所谓“创建时间”的概念。
-atime、-mtime、-ctime可以作为find的时间选项,它们可以整数值给出,单位是天。数值前可以加上加号或者减号,表示大于或者小于多少天。

上图三行命令分别表示7天之内访问过、7天之前访问过以及恰好7天前访问过三种情况。
对应的-amin,-mmin,-cmin用来表示分钟。
-newer参数可以找到比参考文件更新的所有文件。

选项-size可以基于文件的大小来进行搜索。

在find命令最后加上-delete选项可以删除查找到的匹配文件。
选项-perm可以匹配特定权限的文件:

-exec选项可以让find和其他命令一起执行:

-exec还可以执行sh文件:

注意:查找到多少个文件就执行sh文件多少遍。

                
            
        
浙公网安备 33010602011771号