其他分享
首页 > 其他分享> > 10 find命令

10 find命令

作者:互联网

目录

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

标签:10,txt,文件,查询,命令,hhh,root,find
来源: https://www.cnblogs.com/hhf1751342707/p/15349396.html