📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / Linux / 语法

Shell中find命令查找指定文件或目录

2020-09-09 11:35 · 约 2,574 字 · 浏览 3,348 次 · 更新 2020-09-09 11:40语法

Shell中find命令查找指定文件或目录

find命令查找指定文件或目录
  • 描述

搜索文件或目录

  • 用法
find    [命令选项]     [路径]     [表达式选项]1
  • 选项
选项 用法
-empty 查找空白文件或目录
-group 按组查找
-name 按文档名称查找
-iname 按文档名称查找,且不区分大小写
-mtime 按修改时间查找
-size 按容量大小查找
-type 按文档类型查找,文件(f)、目录(d)、设备(b,c)、链接(l)等
-user 按用户查找
-exec 对找到的档案执行特定的命令
-a 并且
-o 或者

- 举例

查找当前目录下名称为hello.txt的文档

[root@test ~]# find -name hello.txt

查找/root 目录下所有名称以.log结尾的文件

[root@test ~]# find  /var/log/  -name  "*.log"

不区分大小写查找文件 test

[root@test ~]# find  -iname  "test"

查找系统中所有的空白文件

[root@test ~]# find   /   -empty

查找系统中所属组为tom的文件

[root@test ~]# find  /  -group  tom

查找系统中所有3天内被修改过的文件

[root@test ~]# find  /  -mtime  -3

查找系统中所有4天前被修改过的文件

[root@test ~]# find  /  -mtime  +4

查找系统中2天前的当天被修改过的文件

[root@test ~]# find  /  -mtime   2

查找当前目录下大于10MB的文件

[root@test ~]# find  ./  -size   +10M

查找当前目录下的所有普通文件

[root@test ~]# find  ./  -type   f

查找计算中tom所拥有的所有文件

[root@test ~]# find  /  -user  tom

查找当前目录下大于1MB的文件后列出文件的详细信息

[root@test ~]# find  ./  -size  +1M  -exec ls -l {} \;

查找计算机中所有大于1MB的文件

[root@test ~]# find   /  -size   +1M  -a  -type  f

shell之find命令详解

find命令原理:从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件,并可以对其进行相关的操作。
- 格式:find [查找目录] [参数] [匹配模型]
- 多参数格式:find [查找目录] [参数] [匹配模型] [参数] [匹配模型]

例如:

  1. find . -name ".sh"
    查找在当前目录(及子目录)下找以sh
    结尾的文件。*
  2. find . -perm 755
    查找在当前目录(及子目录)下找属性为755的文件。
  3. find -user root
    查找在当前目录(及子目录)下找属主为root的文件。
  4. find /var -mtime -5
    查找在/var下找更改时间在5天以内的文件。
  5. find /var -mtime +3
    查找在/var下找更改时间在3天以前的文件。
  6. find /etc -type l
    查找在/etc下查找文件类型为|的链接文件。
  7. find . -size +1000000c
    查找在当前目录(及子目录)下查找文件大小大于1M的文件,1M是1000000个字节。
  8. find . -perm 700 |xargs chmod 777
    查找出当前目录(及子目录)下所有权限为700的文件,并把其权限重设为777。
  9. find . -type f |xargs ls -l
    查找出文件并查看其详细信息。
← 返回《Linux》目录书架 →