linux find命令
# 定义: 根据文件的名称或者属性查找文件
语法格式: find 查找范围 参数
参数 :
1. -name :按照文件的名字查找文件
* :通配符
例 :查询/etc目录下名称中包含hosts文件
[root@localhost ~]# find /etc/ -name '*hosts*'
2. -iname :按照文件的大小查询文件
+ : 大于
- : 小于
没符号 : 等于
例:查询/etc目录下大于/小于5M的文件
[root@localhost ~]# find /etc/ -size +5M
[root@localhost ~]# find /etc/ -size -5M
3. -mtime :按照修改时间去查询
+(省略不写默认为 +) :n天以前(大于n天的)
- :n天以后(在n天以内的)
-atime :按照访问时间去查询
-ctime :按照属性修改时间去查询
4. -user :按照用户的属主查询
-group:按照用户的数组查询
5. -type :按照文件的类型查询
''' 文件类型:
d :文件夹
l :链接文件
f :普通文件
b :磁盘文件
c :字符文件
p :管道文件
s :套接字文件
6. -perm :按照文件的权限查询
7. -inum :根据index node 号码查询
8. -a :并且 (可以省略,默认是并且)
-o :或者
9. -mandepth :查询的目录深度(必须放置在第一个参数位置)
10. -exec :将find处理好的结果交给其他命令进行处理。
知识储备
1. 生成文件:
命令:dd
例:生成一个整整100M的文件: dd if=/dev/zero of==100.txt bs=10M count=10
if :从什么地方读
of :写入到什么文件
bs :每次写入多少内容
count :写入多少次
2. 管道符:|
定义: 前面一个命令的结果交给后面一个命令处理
3. xargs : 把处理的文本变成以空格分隔的一行
4. `` :提前执行命令,然后将结果交给其他命令来处理
例题:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录
[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
解释: 先执行``: find 找到文件类型为f(普通文件) 交给管道符后边的xargs 变成以空格隔开的一个文件。 在执行tar命令 将这一个文件打包压缩到tmp目录下。