find命令 – 查找和搜索文件
语法格式:find [参数] [路径] [查找和搜索范围]
常用参数:
-name | 按名称查找 |
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
-exec | 对查找出的数据进行相应处理 |
find /oldboy -type 文件类型 -name "文件名称"find /oldboy -type f -mtime +10 -delete --- 删除历史数据信息find /oldboy -type f -size +10 -delete --- 删除大于10k文件find . -type f -name "access*.log" -mtime +7 -exec rm -f {} \;#保留7天之内的访问日志find /data -type f ! -name "test10" |xargs rm -f#排除test10的文件,删除剩下的所有文件
find命令的参数选项及说明
基础范例
查找指定时间内修改过的文件。
[root@test2 ~]# find . -atime -2 #"."代表当前目录,查看2天内访问的文件[root@test2 ~]# find /etc/ -mtime -5 查找修改时间在5天内的文件
find查找时间说明图
-4表示文件更改时间距现在4天以内。
+4表示文件更改时间距现在4天以前.
.4表示距现在第4天。
利用“!”反向查找。
[root@test2 ~]# find . -type d #查找当前目录下的所有目录[root@test2 ~]# find . ! -type d #查找不是目录的文件
用-name指定关键字查找
find /var/log/ -mtime +5 -name '*.log' #查看5天前已log结尾的文件
按照目录或文件的权限来查找文件。
[root@test2 ~]# find /etc/ -perm xxx #按照目录或文件的权限来查找
按大小查找文件。
[root@test2 ~]# find . -size +10M #查找大于10M的文件
查找文件时希望忽略某个目录。
[root@test2 data]# find /data -path "/data/2" -prune -o -print #-path指定路径,配合-prune参数用于排除指定目录 -o是或的意思/data/data/1/data/3
使用user和nouser选项。
[root@test2 data]# find . -user test #查找用户为test的文件如果是数字属主那就需要用-nouser参数drwxr-xr-x 2 555 root 6 5月 28 12:56 1[root@test2 data]# find . -nouser #查找没有对应任何用户的文件./1
ls-l命令放在find命令的-exec选项中执行。
[root@test2 ~]# find . -type f -exec ls -l {} \;-exec后面跟的是命令以;结束加上反斜杠进行转义{}的作用是指代前面find查找到的内容{}前后都要有空格
-exec选项的安全模式-ok。
[root@test2 ~]# find /var/log/ -name "*.log" -mtime +5 -ok rm {} \;#查看结尾*.log -ok是在删除前提示是否删除.
2.技巧性范例