Linux系统中的find命令
Linux系统中的find命令
1. find命令的基本语法
其中:
- 路径:指定要搜索的目录。
- 选项:指定搜索参数,如时间、用户、文件类型等。
- 表达式:指定搜索条件,如文件名、大小、权限等。
- 动作:指定对找到的文件执行的操作,如打印、删除、复制等。
2. 查找文件
名称查找
- 精确匹配文件名:
-name"文件名"
- 忽略大小写:
-iname"文件名"
- 正则表达式:
-regex"正则表达式"
大小查找
- 大于指定大小:
-size+5M
- 等于指定大小:
-size5M
- 小于指定大小:
-size-5M
时间查找
- 修改时间:
-mtime+7
(表示7天前) - 访问时间:
-atime+7
- 变更时间:
-ctime+7
用户查找
- 查找属主是特定用户:
-user用户名
类型查找
- 查找文件:
-typef
- 查找目录:
-typed
- 查找链接文件:
-typel
- 查找块设备:
-typeb
- 查找字符设备:
-typec
- 查找套接字:
-types
- 查找命名管道:
-typep
权限查找
- 精确定义权限:
-perm权限
- 查找全局可写文件:
-perm-222
3. 查找文件的具体应用
打印文件
-print //打印
-ls //以⻓格式打印显示
vx: WingspanGo
vx: WingspanGovx: WingspanGo
-delete //删除查找到的⽂件(仅能删除空⽬录)
-exec //后⾯跟⾃定义的 shell 命令(标准写法 -exec \;)
-ok //后⾯跟⾃定义的 shell 命令(会提示是否操作)
//打印查询到的⽂件
[root@wing ~]# find /etc -name "ifcfg*"
[root@wing ~]# find /etc -name "ifcfg*" -print
[root@wing ~]# find /etc -name "ifcfg*" -ls
拷⻉⽂件
[root@wing ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
//-ok会不断提示
[root@wing ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
删除⽂件
[root@wing ~]# find /tmp -name "ifcfg*" -exec rm -f {} \;
[root@wing ~]# find /tmp -name "ifcfg*" -delete
find结合xargs
xargs将查找到结果⼀个⼀个的处理
[root@wing ~]# touch file.txt
[root@wing ~]# find . -name "file.txt" |xargs rm -f
[root@wing ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /var/tmp