linux find命令学习

find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

选项-name的参数指定了文件名所必须匹配的字符串。我们可以将通配符作为参数使用。

linux find命令学习

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

linux find命令学习

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

linux find命令学习

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

linux find命令学习

linux find命令学习

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

linux find命令学习

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

linux find命令学习

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

linux find命令学习

find命令在使用时会遍历所有的子目录。我们可以采用一些深度参数来限制find命令遍历的深度。-maxdepth和-mindepth就是这类参数。

如果只需在当前目录中进行检索,则可以设定最大深度-maxdepth为1:

linux find命令学习

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

linux find命令学习

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

linux find命令学习

下表显示了所有的文件类型参数:

文件类型类型参数
普通文件f
符号链接l
目录d
字符设备c
块设备b
套接字s
Fifop

Linux文件系统中的每一个文件都有三种时间戳,如下所示:

· 访问时间(-atime):用户最近一次访问文件的时间。

· 修改时间(-mtime):文件内容最后一次被修改的时间。

· 变化时间(-ctime):文件元数据最后一次改变的时间。

在Linux中没有所谓“创建时间”的概念。

-atime、-mtime、-ctime可以作为find的时间选项,它们可以整数值给出,单位是天。数值前可以加上加号或者减号,表示大于或者小于多少天。

linux find命令学习

上图三行命令分别表示7天之内访问过、7天之前访问过以及恰好7天前访问过三种情况。

对应的-amin,-mmin,-cmin用来表示分钟。

-newer参数可以找到比参考文件更新的所有文件。

linux find命令学习

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

linux find命令学习

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

选项-perm可以匹配特定权限的文件:

linux find命令学习

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

linux find命令学习

-exec还可以执行sh文件:

linux find命令学习

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

相关推荐