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
posted @ 2024-08-08 20:54  hhhaaa12138  阅读(53)  评论(0编辑  收藏  举报