搜索文件和文件夹与find命令

使用find命令搜索文件和文件夹

在本教程中,我们将看看find命令,以及如何快速地使用它来查找文件系统中的文件。 查找是一种功能强大的实用程序,可以在您的系统上的任何位置找到文件,包括已安装的驱动器和可移动存储,处理正则表达式,甚至在这些文件上运行 幸运的是,只需要几个简单的选项来为大多数用户提供所需的全部功能。

find命令的格式为:

找到[-H] [-L] [-P] [-D debugopts] [-Olevel] [path ...] [expression]

H,L和P选项指定是否遵循符号链接。 存在debugopts来提供调试信息,而-Olevel提供查询优化。 对于本教程和大多数使用find,我们只需要指定路径和表达式。

路径

该路径指定在文件系统上查看的位置。 查找将搜索此路径和所有子目录。 要搜索整个文件系统,请为路径指定“/”。

表达

表达式由三个部分组成:选项,测试和操作。

选项

-help这将打印出一个简要的find命令用法

find -help

-mount此选项告诉您不要搜索其他文件系统上的目录,例如安装的USB驱动器和其他可能搜索速度较慢的卷。

测试

测试部分将告诉您找到要查找的内容。

-executable这个告诉find只返回可执行文件和目录的文件。 找到一个您知道名称(与-file d标志相结合)或可执行文件(与-file f标志相结合)的目录很有用。

-name / -iname这将给出您要搜索的文件(或目录)名称的字符串。 它应该用双引号(“)括起来,元字符(`*',`?'和`[]')可以用于名称的一部分。- name使搜索大小写敏感,而--iname使其不区分大小写。

-regex使用这个而不是-name来使用Emacs样式正则表达式来搜索一个名称。

-type使用它来指定是否要查找文件( -type f )或目录( -type d )。

行动

此部分用于对find命令的结果执行操作。

-exec在发送到命令的文件名中找到的每个文件上执行一个命令。

抑制错误

通常,当您使用非root用户帐户搜索所有目录时,您会收到如下错误:“find:`/ var / spool / cron / crontabs”:权限被拒绝我们可以通过发送它们从输出中删除这些错误通过将2> / dev / null添加到find命令到/ dev / null

例子

搜索整个文件系统的可执行文件

find / -name "grep" -executable -type f 2>/dev/null

搜索目录的整个文件系统(但不是安装的驱动器)

find / -mount -executable -iname "music" -type d 2>/dev/null

进一步阅读

本教程仅涵盖查找功能的一部分。 我希望能做大部分你需要的,但是在搜索手册中还有更多的选择。

man find

有关正则表达式的信息,为您提供更多的灵活性,您的搜索字词,请参阅手册页的POSIX正则表达式

man 7 regex
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏