find命令详解
基本介绍
find命令用来从目录系统中查找文本
不同于locate,find不从数据库中查找文件,所以find速度略逊于locate,但find是实时且准确的,而且不需要占用系统资源进行遍历文件。 其标准格式如下
find [-H] [-L] [-P] [-D debugopts] [-O level] [path...] [expression]
[OPTION] 选项
- -P 为默认选项 不跟随显示符号链接文件,只显示符号链接文件本身
- -H -L -D 并不常用,此处暂且不表。
- -Olevel 可以进行优化配置,默认为1。(大写o直接跟数字不带空格) 总共有-O0 -O1 -O2 -O3 四阶。其中-O0等同于-O1,-O1为默认选项 -O2和-O3用不到
[PATH. . .] 路径
该文件路径为文件查找的起始路径,即在哪个文件下查找所需要的文件
[EXPRESSION] 表达式
find命令通过与表达式相匹配来锁定要搜索的文件。常用表达式如下:
-name 按【文件名称】查找文件,支持通配符,匹配文件的basename -iname 同-name 忽略大小写 -inum 按【inod号】查找文件 -samefile name 查找硬链接文件 -links n 查找链接数为n的文件 -regex “PATTERN” 使用正则表达式查询文,此处正则表达式有异于grep的正则表达式,而且匹配的字符不是basename,而是/dirname/basename
根据文件属主属组查找
-user USERNAME 按【属主】查找文件 -group GROUPNAME 按【属组】查找文件 -uid UID 按【UID】查找文件 -gid GID 按【GID】查找文件 -nouser 查找无属主的文件或目录 -nogroup 查找无属组的文件或目录
根据文件类型查找
-type TYPE 查找特定文件类型的文件
其中文件类型包括
f 普通文件
d 目录文件
l 符号链接文件
s 套接字文件 b 块设备文件
c 字符设备文件 p 管道文件
根据文件大小查找
-size [+|-]#UNIT #代表数字;UNIT为常用文件大小单位:k、M、G
# 代表范围 (#-1,#] +# 代表范围 (0,#-1] -# 代表范围 (#,+∞)
根据时间戳查找
以“天”为单位
-atime[+|-]# -mtime[+|-]# -ctime[+|-]#
以“分钟”为单位
-amin[+|-]# -mmin[+|-]# -cmin[+|-]#
这里的[+|-]#用法与文件大小的用法相同
# 代表范围 (#-1,#] +# 代表范围 (0,#-1] -# 代表范围 (#,+∞)
根据文件权限查找
-perm /MODE -perm -MODE -perm MODE
MODE为数字格式表现的属主属组其他用户的权限,例如:
775 代表 rwxrwxr-x 664 代表 rw-rw-r--
-perm /MODE 属主、属组、其他三者,满足rwx其中任意一项即可匹配 -perm -MODE 属主、属组、其他三者都满足rwx即可匹配 -perm MODE 属主、属组、其他权限与MODE完全相同
find命令的逻辑组合
find命令可以用逻辑命令匹配满足多个条件的文件
-a “与”运算,可以省略 -o “或”运算 -not或者! “非运算”
查找文件后的处理动作
-print 打印到屏幕上 -ls 打印到屏幕上 类似于“ls -l” -delete 删除制定查找的文件 -fls /PATH/TO/FILE 将查找到的内容输出至文件FILE中 -ok COMMAND {} ;\ 对查找到的文件进行COMMAND指令,{}为前面文件查找内容,交互式动作之前会有提示 -exec COMMAND {} ;\ 对查找到的文件进行COMMAND指令,{}为前面文件查找内容,非交互式动作之前无提示
原创文章,作者:easyTang,如若转载,请注明出处:http://www.178linux.com/72909
评论列表(1条)
写的内容虽然不多,但却很给人以精细感,主要介绍了find命令的用法,内容写的很详细,排版也很不错