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