find查找简介:
find:是以文件名称,后缀名,文件相关用户,文件大小,文件类型,文件访问,修改等时间等去查询文件,但不包括以文件的内容去查询,(grep可以以内容的方式查找)。
1·在指定路径下(当不指定路径时,默认在当前路径下查找),按照文件的后缀名进行查找,从当前路径一直向下遍历到满足条件的叶子节点层。
语法格式:
find -name "*.后缀名"
eg:查找以.txt结尾的文件
find -name "*.txt"
2·在查询1的情况下,不区分文件名大小写
语法格式:
find -iname ”*.后缀名“
eg:查找以.txt结尾的文件,不区分大小写
find -iname "*.txt"
3·A把查询到的结果执行指定操作
语法格式:
find -iname "*.后缀名“ -exec 指定操作 {} \;
B 把查询到的结果执行指定操作之前进行会进行询问 的语法格式:
find -iname ”*.后缀名“ -ok rm -f {} \;
eg1:把查询到的文件展示出来:
find -iname "*.txt“ -exec ls -lh {} \;
eg2:把查询到的文件删除
find -iname "*.txt“ -exec rm -f {} \;
4· 按照文件的类型进行查找(当不指定路径时,默认在当前路径下查找)。
文件类型:普通文件 f,目录文件 d,链接文件 l,设备文件 s。
语法格式:
find -type 文件类型
eg1:查找普通文件
find -type f
eg2:把查询到的软连接文件删除
find -type l exec rm -f {} \;
5·按照指定权限进行查找文件
语法格式:
find -perm 权限编码
eg:查找权限为666的文件
find -perm 666
6·按照文件的所属用户进行查找
语法格式:
find -user 文件所属用户
eg:查找root用户的 文件
find -user root
7·按照文件的所属组进行查找
语法格式:
find -group 文件的所属组
eg: 查找test组的文件
find -group test
8.按照文件的修改时间(atime,mtime,ctime ,amin,mmin,cmin 。 access访问 modify修改时间 change变化时间 )进行查找。
A· 查询n天以内查询访问过的文件,mtime,ctime同理
语法格式:
find -atime -n
eg:查询一天以内文件被访问过时间
find -atime -1
B· 查询n天前查询访问过的文件,mtime,ctime同理
语法格式:
find -atime +n
eg1:查询一天前文件被访问过的时间
find -atime +1
C· 查询n分钟以内文件被访问过的时间,mmin,cmin同理
语法格式:
find -amin -n
eg:查询home目录下,1分钟以内文件被访问过的时间
find /home -amin -1
9.按照文件的大小进行查找,查找文件大小的单位:k,M,G
//查找文件大于1MB的文件
find -size +1M =find -size 1M (默认1MB以内)
//查找文件小于1MB的文件
find -size -1M
//查找文件小于1kB的文件
find -size -1k
//查找文件小于1kB的文件
find -size -1G
10.按照文件的深度层次来进行查找(从最深处开始查找一直遍历到当前目录
A.将指定路径作为第一层,向下遍历到最深处,来查找每一层满足指定条件的文件
语法格式:
find -depth -iname "*.txt"
B.将指定路径作为第一层,向下遍历到第n层,来查找每一层满足指定条件的文件
语法格式:
find -maxdepth n -iname "*.txt"
C.将指定路径作为第一层,从第n层开始向下遍历到最深处,来查找每一层满足指定条件的文件
语法格式:
find -mindepth n -iname "*.txt"
eg:
查找文件最深处的普通文件
find -depth -type f -exec tree -L 2 {} \;
从第2层以后开始遍历查找普通文件
find -mindepth 2 -type f
查找文件最深处的txt为后缀名的文件
find -depth -type f -iname "*.txt"
从当前目录开始遍历到第2层查找普通文件
find -maxdepth 2 -type f
补充:
以树结构来展示文件,需要安装tree包
语法格式:
yum install tree
用tree展示第一层的文件:
tree -L 1
用ll展示指定目录文件:
ll ./a/b/c
11.将多个条件按照指定逻辑组合在一起进行文件查找.
逻辑组合有:
-a:and,表示多个条件同时满足
-o:or,表示多个条件只要一个满足即可
eg:
//查找普通文件或者以txt后缀名的文件
find -type f -o -iname "*.txt"
//查找普通文件并且以txt后缀名的文件
find -type f -a -iname "*.txt"
//从当前目录开始遍历到第1层查找普通文件并且文件大小小于1MB
find / -maxdepth 1-type f -a -size -1M
//从当前目录开始遍历到第1层查找普通文件或者文件大小小于1MB
find / -maxdepth 1-type l -o -size -1k
12.A 按照文件名查找
语法格式:
find -name "文件名*"
eg:查找文件名为a的文件
find -name "a.*"
B·按照指定位置满足指定字符进行查找
语法格式:
find -iname"[a-z}[0-9].*“