10 find命令
时间:2022-05-27 23:08:01
收藏:0
阅读:17
目录
find命令
语法
find [查询的路径] [匹配模式] [匹配规则]
匹配模式
-name 按照名字去匹配
-type : 按照文件的类型匹配
-perm : 按照文件的权限来查询
-user : 按照文件的属主来查询
-nouser :查询用户被删除了的文件
-group : 按照文件的属组来查询
-nogroup : 查询没有数组的文件
-size : 按照文件的大小来查询
-mtime : 按照修改文件的时间来查询
-ctime : 按照文件的状态改变时间来查询
-atime : 按照访问时间来查询文件
-a(默认) : 并且
-o :或者
-exec(xargs) : 处理匹配之后的内容
知识储备
删除用户:userdel
删除用户组:groupdel
stat : 查看文件的各种时间
xargs :将所有的内容格式化成一行
| : 管道
-name (按照名字去匹配)
正则匹配:
* : 匹配任意数量的任意字符(匹配零个或多个任意字符)
?: 匹配任意一个字符
案例1:查询出/etc目录下的hosts文件
[root@localhost ~]#find /etc -name "hosts"
/etc/hosts
案例2:查询出/etc目录下的以ifcfg开头的文件
[root@localhost ~]#find /etc -name "ifcfg*"
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-eth0
案例3:查询出/etc目录下以 .txt 结尾的文件
[root@localhost ~]#find /etc -name "*.txt"
/etc/pki/nssdb/pkcs11.txt
案例4:查询出/etc目录下,文件名中包含hosts的文件有哪些
[root@localhost ~]#find /etc -name "*hosts*"
/etc/selinux/targeted/active/modules/100/denyhosts
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
-type (按照文件的类型匹配)
常见的文件类型
f : 普通文件
d : 普通文件夹
l : 链接文件
c : 字符设备文件
b : 块设备文件
s : socket文件
案例1:查询出/root/目录下,所有的普通文件
[root@localhost hhh]#find /root -type f
/root/text/1.txt
/root/text/a
/root/1/2.txt
/root/c/text
/root/c/messages
/root/c/boot.log
/root/c/vmware-network.log
/root/c/22.txt
/root/.ssh/known_hosts
/root/.bash_history
/root/hhh/wenjianjia/abc.txt
/root/hhh/abc.txt
/root/wenjianjia
/root/abc.txt
/root/lianxi/1.txt.bak
/root/.viminfo
-perm (按照文件的权限来查询)
常见的文件权限
755 : 文件夹的默认权限
644 : 文件的默认权限
查询出/root目录下,权限为644的文件
[root@localhost hhh]#find /root -perm 644
/root/text/1.txt
/root/text/a
/root/1/2.txt
/root/c/text
/root/c/22.txt
/root/.ssh/known_hosts
/root/hhh/wenjianjia/abc.txt
/root/hhh/abc.txt
/root/wenjianjia
/root/abc.txt
/root/lianxi/1.txt.bak
-user ( 按照文件的属主来查询)
案例:查询出/root/hhh属主为root的文件
[root@localhost hhh]#find /root/hhh -user root
/root/hhh
/root/hhh/wenjianjia
/root/hhh/wenjianjia/abc.txt
/root/hhh/abc.txt
删除用户:userdel
删除用户组:groupdel
-nouser (查询用户被删除了的文件)
案例1:查询出/root/hhh用户被删除了的文件
[root@localhost wenjianjia]#find /root/hhh -nouser
/root/hhh/wenjianjia/abc.txt
-group (按照文件的属组来查询)
案例1:查询/root/hhh属组为root的文件
[root@localhost ~]#find /root/hhh -group root
/root/hhh
/root/hhh/wenjianjia
/root/hhh/abc.txt
-nogroup (查询没有数组的文件)
案例1查询/root/hhh没有数组的文件
[root@localhost ~]#find /root/hhh -nogroup
/root/hhh/wenjianjia/abc.txt
-size :(按照文件的大小来查询)
+ 查询超过n的文件
- 查询小于n的文件
案例1:查询/root/hhh大于1M的文件
[root@localhost hhh]#find /root/hhh -size +1M
/root/hhh/1122.txt
案例2:查询/root/小于1M的文件
[root@localhost hhh]#find /root/ -size -1M
/root/text/1.txt
/root/text/a
/root/c/text
/root/c/boot.log
/root/wenjianjia
/root/lianxi/1.txt.bak
-mtime ( 按照修改文件的时间来查询)
-ctime (按照文件的状态改变时间来查询)
-atime (按照访问时间来查询文件)
+ 查询某个时间段之前的数据
- 查询某个时间段之内的数据
案例: 查询/root/hhh在3天以内修改的普通文件,并删除
find /root/hhh -mtime -3 -type f -exec rm -rf {} \;
案例: 要求将所有3天内状态改变的普通文件加上.bak后缀
find /root/hhh/ -ctime -3 -type f | xargs -I {} mv {} {}.bak
原文:https://www.cnblogs.com/hhf1751342707/p/15349396.html
评论(0)