find - 根据规则查找文件
简介
- 用法:
find [目录]... [[选项] [表达式]]... - 支持
多个目录和多个选项
查找条件
根据类型查找
-typef: 文件d: 目录l: link
[root@master test]# find /root/test/ -type f
/root/test/c
/root/test/b
/root/test/a
根据文件名查找
-name:根据文件名查找,后边接通配-iname:忽略文件名大小写,其他同上-regex:根据目录+文件名进行查找,后边接正则表达式
# 根据文件名查找
[root@master test]# find /root/ -name "a"
/root/test/a
# 根据文件名(忽略大小写)查找
[root@master test]# find /root/ -name "A"
[root@master test]# find /root/ -iname "A"
/root/test/a
# 根据路径+文件名,使用正则查找
[root@master ~]# find /root/ -regex '.*/test/[abc]'
/root/test/c
/root/test/b
/root/test/a
根据文件大小查找
-size:+/-:大于或小于G、M、k:单位
# 查找当前目录下大于200M的文件
[root@master ~]# find ./ -size +200M
./kubernetes-server-linux-amd64.tar.gz
# 查找当前目录下大于10M小于20M的文件
[root@master ~]# find ./ -size +10M -size -20M
./kernel-lt-devel-5.4.276-1.el7.elrepo.x86_64.rpm
./etcd-v3.3.24-linux-amd64.tar.gz
根据权限查找
-perm- 使用数字声明
- 使用 a、u、g 声明
# 使用数字声明权限
[root@master ~]# find ./ -type f -perm 0755
./cfssl
./cfssljson
# 使用 a/u/g,r/w/x 声明权限
[root@master ~]# find ./ -type f -perm /a=x
./cfssl
./cfssljson
根据属主和属组查找
-user:指定属主-group:指定属组
[root@master ~]# ll
drwxr-xr-x 2 yangkaiyue yangkaiyue 4096 6月 13 14:45 test
[root@master ~]# find ./ -user yangkaiyue
./test
[root@master ~]# find ./ -group yangkaiyue
./test
根据文件时间查找
-ctime:上次修改元数据时间(如文件名,属主,数组等)-mtime:上次修改内容时间-atime:上次文件访问时间-cmin/mtime/atime:按分钟计,其他同上+:某时间段以外,如 +1 代表一天以前-:某时间段以内,如 -1 代表一天以内
# 查找当前目录下 mtime 在 1 天以内的文件
[root@master ~]# find ./ -mtime -1
# 查找当前目录下 mtime 在 30 分钟以内的文件
[root@master ~]# find ./ -mmin -30
操作
删除
-delete
[root@master ~]# find test/ -regex '.*[a|bc]' -delete
其他操作
- 接
-exec命令
# 也可以实现删除,新机器谨慎执行啊,你机器里可好多都是符合条件的
[root@master ~]# find ./ -mmin -30 -exec rm -rf {} \;
# 批量重命名
[root@master test]# find ./ -mtime -1 -type f -exec mv {} {}.bak \;
- 接
xargs命令
[root@master ~]# find ./ -mmin -30 -name "a*" | xargs rm -rf
欢迎加 1092845214 交流沟通呀~
本文来自博客园,作者:难德糊涂,转载请注明原文链接:https://www.cnblogs.com/yangkaiyue/p/18245358

浙公网安备 33010602011771号