linux基础之find命令详述
目录
find命令
1、find命令
find命令:根据文件的名称或者属性查找文件。
2、语法格式
find 查找范围 参数
3、通用参数
3.1 -name
-name : 按照文件的名字查找文件,区分大小写 (* :通配符)
# 案例1:查询etc目录下的hosts文件 : find /etc/ -name 'hosts'
# 案例2:查询etc目录下名称中包含hosts的文件: find /etc/ -name '*hosts*'
3.2 -iname
-iname : 按照文件的名字查找文件,忽略大小写 (* :通配符)
# 案例:忽略大小写查询etc目录下名称中包含hosts的文件:find /etc/ -iname '*hosts*'
3.3 -size
-size: 按文件的大小查询
+ :大于
- :小于
没有符号: 等于
# 案例:查找当前目录下文件小于1M大小的文件: find ./ -size -1M
3.4 -mtime
-mtime : 查找最后修改时间查询(默认按天算)
+数字 :n 天以前的(默认+,所以可以省略)
-数字 :n 天以内的
-atime: 按最后访问时间查询
-ctime: 按最后修改属性时间查询
# 案例:查找当前目录下文件最后修改时间在1天以前的所有文件:find ./ -mtime 1
3.5 -user
-user : 按照用户的属主查询
# 案例:查找home目录下属主为bgx的文件:find /home/ -user bgx
3.6 -group
-group :按照用户的属组查询
# 案例7:查找home目录下属组为hr的文件:find /home/ -group hr
3.7 -type
-type : 按照文件的类型查询
# 文件类型:
f : 普通文件
d : 文件夹
l : 链接文件
s : 套接字文件
p : 管道文件
c : 字符文件
b :磁盘文件
# 案例1:按照文件类型查找当前目录下的文件夹:find ./ -type d
# 案例2:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录:tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
3.8 -perm
-perm : 按照文件的权限查询(按数字权限)
# 案例9:查找当前文件中权限为755的文件:find ./ -perm 755
3.9 -inum
9. -inum : 按照index node号码查询
# 案例10:查找inode编号为17610952的文件:find ./ -inum 17610952
4、配合使用参数
4.1 -a
-a : 并且(可以省略,默认是-a)
4.2 -o
-o : 或者
4.3 -maxdepth
-maxdepth : 查询目录深度(必须放置于第一个参数)
# 案例1:查找etc目录下目录深度为3,名字包含ens开头的文件:find /etc/ -maxdepth 3 -iname 'ifcfg-ens*'
# 案例2:查询当前目录下目录深度为2或者文件名中以txt结尾的所有文件:find ./ -maxdepth 2 -o -name '*.txt'
# 知识储备:
1. dd : 生成文件(常用来造文件来测试):
dd if=/dev/zero of=100.txt bs=10M count=10
if : 从什么地方读
of : 写入到什么文件
bs : 每次写入多少大小
count : 写入多少次
2. |: 管道符,意思是把一个命令的结果交给后面一个命令处理。
3. xarg : 把处理的文本变成以空格分割的一行
4. `` :提前执行命令,然后将结果交给其他命令来处理
4.4 -exec
-exec :把find处理好的结果交给其他命令并继续处理。