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

/ Linux / 没有评论 / 2661浏览

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命令原理:从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件,并可以对其进行相关的操作。

例如:

  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
    查找出文件并查看其详细信息。