find 命令小手册

Posted 琦彦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find 命令小手册相关的知识,希望对你有一定的参考价值。

find 命令小手册

Linux find 命令用来在指定目录下查找文件。

任何位于参数之前的字符串都将被视为欲查找的目录名。

如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。

并且将查找到的子目录和文件全部进行显示。

语法

find   path   -option   [   -print ]   [ -exec   -ok   command ]    \\;

参数说明 :

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。

如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去n天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去n天内被修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

-type 
    c : 文件类型是 c 的文件。

    d: 目录

    c: 字型装置文件

    b: 区块装置文件

    p: 具名贮列

    f: 一般文件

    l: 符号连结

    s: socket

-pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

最常用的35查找命令示例

  • 第一部分:查找名称查找文件的基本查找命令
  • 第二部分:根据他们的权限查找文件
  • 第三部分:基于所有者和组的搜索文件
  • 第四部分:根据日期和时间查找文件和目录
  • 第五部分:根据大小查找文件和目录

第一部分 - 查找名称查找文件的基本查找命令

1.使用当前目录中的名称查找文件

在当前工作目录中查找名称为test.c的所有文件。

find test.c

2.在主目录下查找文件

查找/ home目录下的所有文件,名称为test 。

find /home -name test

3.使用名称和忽略案例查找文件

找到名称为test的所有文件,并在/ home目录中同时包含大写和小写字母。

find /home -iname test

4.使用名称查找目录

在/目录中查找名称为test的所有目录。

find / -type d -name test

5.使用名称查找php文件

在当前工作目录中查找名为test.PHP的所有PHP文件。

find -type f -name test.php

6.查找目录中的所有PHP文件

查找目录中的所有php文件。

find -type f -name "*.php"

第二部分 - 根据他们的权限查找文件


7.查找777个权限的文件

查找权限为777的所有文件

find / -type f  -perm 777

8.查找没有777权限的文件

查找所有文件未经许可777。

find / -type f ! -perm 777

9.查找具有644个权限的SGID文件

查找权限设置为644的所有SGID位文件。

find /  -perm 2644

10.找到具有551权限的粘滞位文件

查找权限为551的所有Sticky Bit设置文件。

find /  -perm 1551

11.查找SUID文件

查找所有SUID集文件。

find / -perm /u=s

12.查找SGID文件

查找所有SGID设置文件

find / -perm /u=r

13.查找只读文件

查找所有只读文件。

find / -perm /u=r

14.查找可执行文件

查找所有可执行文件。

find / -perm /u=x

15.找到777个权限和Chmod到644的文件

查找所有777个权限文件,并使用chmod命令将权限设置为644

find /root/findtest/ -type f  -perm 777 -print -exec chmod 644  \\;

16.找到具有777个权限的目录和Chmod到755

查找所有777个权限目录,并使用chmod命令将权限设置为755。

find /root/findtest/ -type d  -perm 777 -print -exec chmod 755  \\;

17.查找并删除单个文件

找到一个名为test.c的文件并将其删除

find /root/findtest/ -type f  -name "test.c" -exec rm -f   \\;

18.查找并删除多个文件

查找和删除多个文件,如.mp3或.txt,然后使用。

find /root/findtest/ -type f  -name "*.mp3" -exec rm -f   \\;
find /root/findtest/ -type f  -name "*.txt" -exec rm -f   \\;

19.查找所有空文件

在特定路径下查找所有空文件。

find /root/findtest/ -type f -empty

20.查找所有空目录

将特定路径下的所有空目录归档。

find /root/findtest/ -type d -empty

21.文件所有隐藏文件

要查找所有隐藏的文件,请使用以下命令。

find /root/findtest/ -type f -name ".*"

第三部分 - 基于所有者和组的搜索文件


22.查找基于用户的单个文件

在所有者root的/ root目录下查找名为test.c的所有或单个文件。

find /root/findtest/ -user root -name test.c

23.查找基于用户的所有文件

查找~目录下属于用户neil的所有文件。

find ~ -user neil

24.查找基于组的所有文件

查找/ home目录下属于Group Developer的所有文件。

find /home -user root -group developer

25.查找用户的特定文件

查找~目录下的用户neil的所有.txt文件

find ~ -user neil -name "*.txt"

第四部分 - 根据日期和时间查找文件和目录


26.查找最近50天修改的文件

查找50天后修改的所有文件。

find / -mtime -50

27.查找最近50天访问的文件

查找50天后访问的所有文件。

find / -atime 50

28.查找最后50-100天修改的文件

查找所有被修改超过50天以及少于100天的文件。

find / -mtime +50 -mtime -100

29.在过去1小时内查找更改的文件

查找最近1小时内更改的所有文件

find / -cmin -60

30.在最近1小时内查找修改的文件

查找最近1小时内修改的所有文件。

find / -mmin -60

31.查找最近1小时内访问的文件

查找最近1小时内访问的所有文件。

find / -amin -60

第五部分 - 根据大小查找文件和目录


32.找到50MB的文件

要找到所有50MB的文件,请使用。

find / -size 50M

33.查找大小在50MB到100MB之间

找到大于50MB且小于100MB的所有文件。

find / -size +50M -size -100M

34.查找并删除大于100MB的文件

查找所有大于100MB文件并使用一个命令删除它们。

find / -size +100M -exec rm -rf  \\; 

35.查找特定文件并删除

查找超过10MB的所有.mp3文件,并使用一个命令删除它们

find / -type f -name *.mp3 -size +10M -exec rm -rf  \\; 

参考链接:

https://cloud.tencent.com/developer/article/1348438

以上是关于find 命令小手册的主要内容,如果未能解决你的问题,请参考以下文章

用find命令查找最近修改过的文件

find命令归总

Linux基础教程 linux中使用find命令搜索文件常用方法记录

linux为啥 find查不到文件

Linux培训基础教程使用

linux的find的命令用法