find——文件搜索
命令所在路径:/bin/find
注意:find命令消耗系统资源较多,应避免在系统负载较高的情况下使用
示例1:根据文件名查找
# find /tmp/ -name daqiao*
/tmp/表示在该目录范围下查找,-name后接文件名,执行上面的命令会在/tmp/目录下查找文件名以daqiao开头的所有文件
* 通配符,表示任意多字符
? 单个字符,如a
# find /tmp/ -name *daqiao??????
在/tmp/目录下查找文件名末尾是daqiao加6个未知字符组成的所有文件
# find /tmp -iname index*
-iname的含义是按文件名查找且不区分大小写
示例2:根据i节点查找
# find . -inum 786524
“.”表示当前路径,执行上面命令会在当前目录下查找索引节点数为786524的文件
示例3:根据文件大小查找
# find / -size +204800
linux系统中最小的存储单元是数据块,1个数据块 = 512B(字节) = 0.5KB,因此1M = 1024KB * 2 =2048(数据块)
“+”表示大于,执行上面命令将在根目录下查找所有大于100M的文件
# find / -size +102400 -a -size -204800
-a表示与的关系,a是单词and缩写;“-”表示小于;根目录下查找所有大于50M但是小于100M的文件
示例4:根据用户查找
# find . -user daqiao
在当前路径下查找文件所有者是daqiao的文件
示例5:根据所属组查找
# find . -group nvsheng
在当前路径下查找所属组是nvsheng的文件
示例6:根据时间属性查找
# find . -amin -5
在当前目录下查找5分钟内访问过的文件
# find . -cmin -5
在当前目录下查找5分钟内修改过属性的文件(通过ls -l 显示的信息都是文件属性)
# find /tmp/public_html/ -mmin -5
在/tmp/public_html/下查找5分钟内修改过内容的文件
-amin 访问时间access
-cmin 文件属性change
-mmin 文件内容modify
示例7:根据文件类型查找
-type 根据文件类型查找
f——文件 d——目录 l——软连接文件
# find /tmp -type d
/tmp下查找所有的目录
一般会配合其他参数一起使用,如下:
# find /etc -name init* -a -type f
/etc下查找文件名以init开头的且文件类型是文件的所有文件
示例8:对搜索结果执行操作
# find /tmp -iname index* -exec ls -l {} \;
-exec/-ok 命令 {} \; 对搜索结果进行操作
执行上面命令会在/tmp下查找以index(不区分大小写)开头的文件,并将结果以长格式列出来
# find /tmp -iname index* -ok rm -f {} \;
-ok与-exec唯一的区别是在对搜索结果进行操作时每次都会询问,在确定之后才执行
除了上面已经使用到的-a参数,还有另一个参数-o表示或关系,-a,-o分别表示与和或的关系,用以连接条件
-a and
-o or