查找文件(find 命令)
使用 find 命令以递归方式在目录树中搜索每个指定的 路径,以查找与使用以下文本中给出的术语编写的布尔表达式相匹配的文件。
find 命令的输出取决于 Expression 参数指定的项。
以下是如何使用 find 命令的示例:
- 要列出文件系统中所有扩展名为 .profile 的文件,请输入以下命令:
该命令搜索整个文件系统,将所有文件名含 .profile 的文件的完整路径名写出。 斜杠 (/) 指示 find 命令搜索 /(root) 目录及其所有子目录。find / -name .profile要节省时间,可以通过指定文件可能所在的目录来限制搜索。
- 要对当前目录及其所有子目录中文件名为 "test的所有文件执行不区分大小写的搜索操作,请输入以下命令:
find . -iname test - 要列出当前目录树中具有
0600权限代码的文件,请输入以下命令:
该命令列出仅具有所有者读权限和所有者写权限的文件名。 圆点 (find . -perm 0600.) 告诉 find 命令搜索当前目录及其子目录。 关于权限代码的解释,请参阅 chmod 命令。 - 要在几个目录中搜索具有特定权限代码的文件,请输入以下命令:
该命令列出具有所有者读权限和所有者写权限及其他可能权限的文件的名称。 被搜索的是 manual、clients 和 proposals 目录及其子目录。 上例中,-perm 0600 只选择许可权代码完全匹配find manual clients proposals -perm -06000600的文件。 此例中,-perm -0600 选择许可权代码允许由0600指定的访问权以及高于0600级别的其他访问权的那些文件。 这样就还与权限代码 0622 和 2744 匹配。 - 要列出当前目录下所有在最近 24 小时内有更改的文件,请输入以下命令:
find . -ctime 1 - 要搜索有多个链接的常规文件,请输入以下命令:
这将列出具有多个链接 (-links +1的普通文件 (-type f) 的名称。find . -type f -links +1 - 要搜索所有长度精确等于 414 字节的文件,请输入以下命令:
find . -size 414c - 要对根目录及其子目录中文件名包含字符串 "main且扩展名长度以字母 "o结尾的所有文件执行不区分大小写的搜索操作,请输入以下命令:
该命令的搜索结果会返回 "main.o、"app_main.c.o、"mAin.O或 "APP_MAIN.o等文件。find / -iname "*main*.*o" - 要对根目录及其子目录中文件名包含 "main字符串且扩展名为单字符的所有文件执行不区分大小写的搜索操作,请输入以下命令:
该命令的搜索结果会返回 "main.c、"app_main.o、"MAIN.c或 "App_main.o等文件。find / -iname "*main*.?" - 要对根目录及其子目录中扩展名为 ".T(后跟任意一个字符)和字母 "t的所有文件执行不区分大小写的搜索操作,请输入以下命令:
该命令的搜索结果会返回 "file.T1t、"log.Tot、"file.txt、"log.tot"或 "log.toT等文件。find / -iname "*.T?t" - 要对根目录及其子目录中扩展名为 ".Sh、".md、".Sd或 ".mh的所有文件执行不区分大小写的搜索操作,请输入以下命令:
该命令的搜索结果会返回 "readme.sh、"logo.md、"logo.sd、"readme.mh"、"readme.SH"或 "logo.mD等文件。find / -iname "*.[Sm][hd]"