文件搜索命令
文件搜索命令 find
命令名称:find
命令所在路径:/bin/find
执行权限:所有用户
语法:find [搜索范围] [匹配条件]
功能描述:文件搜索
用法(以下只介绍最常用选项的用法)
1、-name 根据文件名搜索
在/tmp/dianshiju目录下查找文件名为FuYao的文件
find /tmp/dianshiju -name FuYao
与Windows下常用的搜索(搜索FuYao,只要文件名包含FuYao,都会被匹配到)不同,使用上面的搜索是精确搜索,只有文件名为FuYao的文件才会被搜索到;
通配符*的使用
如果想要搜索文件名中包含FuYao的文件,可以使用通配符*;
*代表匹配任意字符,0或多个;
*加在FuYao前面,代表以FuYao结尾;*加在FuYao后面,代表以FuYao开头;
?的使用
?代表匹配单个任意字符,使用方法如下:
FuYao??代表文件名为FuYao后面加任意两个字符
2、-iname 根据文件名搜索(不区分大小写)
前面的学习我们了解到,Linux严格区分大小写,所以假如使用find /tmp/dianshiju -name FuYao命令,只能找到FuYao文件,类似fuyao,FUYAO等都无法找到,如果想要在查找时不区分大小写,可以使用-iname选项,用法与-name一样;
3、-size 根据文件大小搜索
在根目录下查找大于100MB的文件
find / -size +204800
解释如下:
+n 大于 -n 小于 n 等于
文件大小的单位是数据块,在Linux中,一个数据块大小是512字节(0.5KB),100MB=102400KB=204800数据块
(部分查找到的结果显示:没有那个文件或目录,因为查找的是内存目录/proc,文件经常发生变化,所以是正常的)
4、-user 根据所有者查找
相应的,根据所属组查找是:-group
5、-type 根据文件类型查找
f表示文件,d表示目录,l表示软链接
6、连接选项-a -o -exec/-ok
1)-a 表示and,两个条件同时满足
查找FuYao而且类型为文件
2)-o 表示or,两个条件满足任意一个即可
用法同-a
3)-exec/-ok 命令 {} \; 对搜索结果执行命令
在/tmp/dianshiju目录下查找FuYao 文件并显示其文件属性
find /tmp/dianshiju -name FuYao -exec ls -lh {} \;
-exec和-ok不同在于,-ok会进行询问,比如在搜索后进行删除操作,可能一般需要确认一下,可以使用-ok
7、-inum 根据i节点查找
可以使用-inum来查找某文件的硬链接文件(硬链接不能跨分区使用,只要在本分区内搜索,就可以找到是否存在硬链接文件)