find命令语法格式:
find [路径] [选项] [操作]
1 常用选项参数对照表:
选项 | 含义 |
---|---|
-name | 根据文件名查找 |
-user | 根据文件属主查找 |
-type | 根据文件类型查找 |
-size | 根据文件大小查找 |
-mtime | 根据文件更改时间查找 |
2 常用选项说明:
-name 根据文件名查询
-name 文件名区分大小写
-iname 文件名不区分大小写
-size 根据文件大小查询
-n 小于 大小为 n 的文件
+n 大于 大小为 n 的文件
举例1:查找 /ect 目录下,小于 10000 字节的文件。 find /etc -size +10000c
举例2:查找 /etc 目录下,大于 1M 的文件。find /etc -size +1M
-mtime 根据时间查询
find 目录 -mtime +n -name 文件名
在指定目录及其子目录下查找(负无穷,nowTime - (n+1)* 24h)时间范围内被修改过内容的文件
find 目录 -mtime n -name 文件名
在指定目录及其子目录下查找 [ nowTime - (n+1)* 24h ,nowTime - n * 24h ]时间范围内被修改过内容的文件
find 目录 -mtime -n -name 文件名
在指定目录及其子目录下查找(nowTime - n * 24h , nowTime ) 时间范围内被修改过内容的文件
例如:
find /log/fs/early_media/ -mtime +2 -name “.” 查出nowTime-324h前的文件
find /log/fs/early_media/ -mtime 2 -name "." 查出nowTime-324h ~ nowTime-224h之间的文件
find /log/fs/early_media/ -mtime -2 -name "." 查出nowTime-224h ~ nowTime之间的文件
-mmin 根据分钟查询
-n n 分钟以内修改过的文件
+n n 分钟之前修改过的文件
举例1: 查询 /etc 目录下 30分钟 之前修改过的文件
find /etc -mmin +30
举例1: 查询 /etc 目录下 30分钟 之内修改过的目录
find /etc -mmin -30 -type d
-newer file1
举例:查找当前目录下比 a 文件要新的文件。
find . -newer a
3 逻辑运算符
-a 与 (默认情况查询条件之间都是 与 的关系)
-o 或
-not | ! 非
举例:查找当前目录下文件名不以a开头的文件。
find ./ ! -name “a*”
4 常用操作说明
1) exec:对匹配的文件执行该参数所给出的shell命令。
形式为command {} ;,注意{}与;之间有空格
2) |xargs 与exec作用相同 ,起承接作用
区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等
xarges命令简介;
#将以log结尾的文件删除了
find . -type f -name “*.log” | xargs rm -rf
#-i参数,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替
#批量备份
ls | xargs -i mv {} {}.bak