find命令的用法和正则表达式

马谦马谦马谦 2018年5月4日09:51:14 发表评论
文章最后编辑于:2018-11-15 13:08:20

find命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

查找的基本语法为:find dir [options] expression,在dir目录查找符合expression的文件,默认会递归查找。

一、基础用法

1.1 根据名字和类型查找

  • -name filename:直接查找该文件名的文件。
  • -type filetype:通过文件类型查找文件。文件类型包括:f:普通文件 b:块设备文件 c:字符设备文件 d:目录 l:链接文档 s:套接字文件

1.2 设置查找深度

通过-maxdepth选项控制查找的深度:

1.3 时间属性控制

  • -atime +n/-n:访问或执行的时间大于或小于n天的文件。
  • -ctime +n/-n:写入,更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件。
  • -mtime +n/-n:表示写入时间大于或小于n天的文件,该参数用的最多。
  • -mmin +n/-n:表示mtime在n分钟内的文件。

二、正则表达式查询

使用正则表达式查询需要的选项有两个:-regextype-regex

-regextype指定正则匹配的类型,可用的选项有很多,常见的有:‘‘awk’, ‘egrep’, ‘ed’, ‘emacs’, ‘grep’, ‘sed’等,不同匹配模式匹配的结果不一样。默认是emacs,但是默认和常用的正则不太一致,达不到想要的效果:

三、用法示例

本文共执行41次查询,耗时0.272秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: