文件搜索命令Find
文章目录
视频链接
尽量不要使用搜索,东西放好,find费系统资源
语法:find 查找范围 匹配条件
执行权限:所有用户
例子 find /etc -name init #在/etc目录下搜索叫init的文件
满足多个条件查找
两个条件都满足:-a #-a 参数是 and的缩写
两个条件满足一个: -o #-o 参数是or 的缩写
查找/etc范围内同时满足 名字以init开头 且 访问时间在5分钟之内的文件或目录
fint /etc -name init* -a -amin -5
查找满足条件的文件并对文件进行下一步操作
满足条件后进行下一步操作 -exec|ok 命令 {} \ ;中间均隔一个空格
查找/home下 test.txt件 并编辑它
find /home -name test.txt -exec|ok vim {} \;
1按名字查找
(1)find /etc -name init是精确匹配
[root@ecs-kc1-small-1-linux-20200426210057 ~]# find /etc -name init
/etc/selinux/targeted/active/modules/100/init
/etc/sysconfig/init
(2)模糊匹配 * ?
- *匹配[0,正无穷]个任意字符
- ?匹配零个或一个任意字符
----查询到的是以init包含的目录或文件
[root@ecs-kc1-small-1-linux-20200426210057 /]# find /etc -name init*
/etc/init.d
/etc/selinux/targeted/contexts/initrc_context
/etc/selinux/targeted/active/modules/100/init
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/sysconfig/init
/etc/rc.d/init.d
/etc/inittab
(3)忽略大小写查询 -iname (i应该是ignore的缩写)
linux是大小写敏感的
[root@ecs-kc1-small-1-linux-20200426210057 etc]# touch INITTAB --在/etc目录下创建INITTAB文件
root@ecs-kc1-small-1-linux-20200426210057 etc]# find -name INITTAB
./INITTAB
############ -iname 忽略大小写查询### . 在当前路径下查询
[root@ecs-kc1-small-1-linux-20200426210057 etc]# find . -iname inittab
./inittab
./INITTAB
2按大小查找 -size +数据块大小|-数数据块大小
find 查找范围 -size +数据块大小
在centOS6中 一个数据块大小为0.5K=512字节
在在centOS6中 一个数据块大小为1K
“+”代表大于这个数据块大小的文件,
“-”代表小于这个数据块大小的文件
不加符号代表等于这个数据块大小的文件
查找/usr下 文件大小大于100M的文件 100M=100*1024KB=100*1024*1个数据块
例子:find /usr -size +102400
[root@ecs-kc1-small-1-linux-20200426210057 yue]# find /usr -size +102400
/usr/lib/locale/locale-archive
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.aarch64/jre/lib/rt.jar
3按时间查找
(1)-amin 访问时间
在5分钟之內访问过的文件
find /home -amin -5
(2)-cmin 改变属性的时间change chmod chown 改变的是ls -al 中文件属性的那九个字段。-rwxr–r--
修改属性超过10分钟的文件
find /etc -cmin +10
(3)-mmin 改变内容的时间modify
修改内容等于3分钟的文件
find /home -mmin 3
4按类型查找 -type
“-f”普通文件 d 目录 l软连接
查找/var下普通文件
find /var -type f
5按节点查询-inum
ls -i #可以查到文件的 inum
找到当前目录下 inum 为 31531的文件 并删除它
find . -inum 31531 -exec rm {} \;
6按所属关系查询 -user -group
find /home -user yue
find /home -group 组名