find命令
1、使用正则表达式
查找根目录下的 .log
文件
find / -name *.log
查看/gitlab/middleware/kubernetes/nginx/yaml/
下的.yaml
文件
find /gitlab/middleware/kubernetes/nginx/yaml/ -name "*.yaml"
2、查找不同类型的文件
目录:查看根目录下的nginx
目录
find / -type d -name nginx
文件:查看/gitlab/middleware/kubernetes/nginx/yaml/
下的.yaml
文件
find /gitlab/middleware/kubernetes/nginx/yaml/ -type f -name "*.yaml"
连接符:查看java
连接文件
find / -type l -name java
3、指定的时间戳查找
- 访问时间戳(atime):最后一次读取文件的时间。
- 修改时间戳 (mtime):文件内容最后一次被修改的时间。
- 更改时间戳 (ctime):上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)
查看超过一年的文件
find . -type f -atime +365
查看五天前的文件
find . -type f -mtime 5
+
表示大于、-
表示小于,搜索10~20天的文件
find / -type f -ctime +10 -ctime -20
4、按大小查找文件-size
- b:512 字节块(默认)
- c:字节
- w:双字节字
- k:KB
- M:MB
- G:GB
+
表示大于、-
表示小于,查找大小为 10 KB ~ 1 MB 的文件:
find / -type f -size +10k -size -1M
5、按权限查找文件-perm
使用-perm
查看权限为775的文件
find / -type f -perm 775
6、按所有权查找文件-user
查找用户为MySQL的文件
find -type f -user mysql
7、查找到文件后执行命令-exec
find
找到相应的文件后需要对其进行操作可以使用exec
命令
find . -type f -atime +5 -exec ls {} \;
上述命令找到上一次大于五天被读取的文件,并使用ls
命令查看,占位符{}
非常重要,尤其是在想删除文件时。因为,如果不使用它,该命令将对所有文件执行(而不是刚刚通过 find
命令找到的文件)。
另一个不使用占位符
find . -type f -atime +5 -exec ls \;
exec
后必须已;
结束,使用\
用于转义字符