find命令详解

文件搜索命令:find

命令名称:find
命令所在路径:/bin/find
执行权限:所有用户
语法:find [搜索范围][匹配条件]
功能描述:文件搜索

按文件名查找常用操作

# find /etc -name init #在etc目录下查找init的文件
/etc/sysconfig/init
# find /etc -name *init* # *号表示通配符只要文件名包含init都匹配出来
# find /etc -name init* #以所有以init开头全部匹配出来
# find /etc -name init??? #匹配init后面三个字符不清楚一个问号表示一个字符
# find /etc -iname init #不区分大小写
# find /etc -name init* -type f #以etc目录下init开头的文件全部列出来
# find /etc -name init* -type d #以etc目录下init开头的目录全部列出来
# find /etc -name init* -type l #以etc目录下init开头的软连接全部列出来

-inum根据i(inode)
节点查找
测试
# touch "11 22" #创建一个文件
# rm 11 22 #删除这时候是无法删除的
rm: 无法删除"11": 没有那个文件或目录
rm: 无法删除"22": 没有那个文件或目录
# ls -i #这时候列出inode
37676584 11 22 33582978 anaconda-ks.cfg
# find . -inum 37676584 -exec rm {} \; #用find来查找(.是在当前目录查找)查找然后删除

注:千万不要在服务器高峰期用find查找,查找范围越小越好,能不再跟分区就不再根分区查找,搜索条件越精准越好。
根据文件大小查找

+n大于 -n小于 n等于

# find / -size +100M #在根搜索所有大于100M的文件

要查找大于50M小于20M 这两个条件必须同时满足
-a 两个条件同时满足
-o 两个条件满足任意一个即可
# find /etc -size +5M -a -size -20M #在etc目录下查找大于5M小于20M的文件

# find /etc -size +5M -0 -size -20M #在etc目录下查找大于5M或者小于20M的文件

根据所有者来查找

# find / -user php-fpm #根据所有者查找

# find / -group php-fpm #根据所属组查找

根据时间属性查找

-amin 访问时间 access  访问时间有cat tail less等等
-cmin 文件属性 change 文件的属性改了有chmod
-mmin 文件内容 modify 文件里面的内容被改了

# find /etc -amin -30 #在etc目录下30分钟以内访问文件有哪些

# find /etc -cmin -30 #在etc目录下30分钟以内被改的文件属性有哪些

# find /etc -mmin -30 #在etc目录下30分钟以内被修改文件内容有哪些

在etc下查找inittab文件并显示详细信息

# find /etc -name inittab -exec ls -l {} \;  #查找命令显示详细信息出来
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab

# find /etc -name init* -type f -exec ls -l {} \;
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab
-rw-r--r--. 1 root root 798 10月 31 2018 /etc/sysconfig/init
-rwxr-xr-x. 1 root root 5419 8月  24 2018 /etc/sysconfig/network-scripts/init.ipv6-global
-rw-r--r--. 1 root root 30 11月  3 2018 /etc/selinux/targeted/contexts/initrc_context

# find /etc -name init* -type f -ok ls -l {} \; #一个个显示
< ls ... /etc/inittab > ? y #y查看详细
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab
< ls ... /etc/sysconfig/init > ? n #n不看
< ls ... /etc/sysconfig/network-scripts/init.ipv6-global > ? y #看
-rwxr-xr-x. 1 root root 5419 8月  24 2018 /etc/sysconfig/network-scripts/init.ipv6-global
< ls ... /etc/selinux/targeted/contexts/initrc_context > ? n #不看
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章