如何在 Linux 中递归搜索和查找文件如何在 Linux 中递归搜索和查找文件如何在 Linux 中递归搜索和查找文件如何在 Linux 中递归搜索和查找文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中递归搜索和查找文件

这个简短的教程解释了如何在 Linux 操作系统中递归地搜索和查找文件。

阅读本文后,您将能够使用不同的技术递归地查找任何文件,包括单个文件搜索、多个文件搜索、按权限查找文件等等。本文档针对 Linux 新用户和经验丰富的用户进行了优化。所有方法对于每个 Linux 发行版都有效。

本教程中的所有示例都包含屏幕截图,以便任何 Linux 用户轻松理解和重现它们。

在 Linux 中递归查找文件

find 命令不需要标志即可在当前目录中递归搜索文件。您只需使用 –name 选项定义主目录和文件名。该命令将搜索主目录和所有子目录中的文件。

语法很简单,如下所示:

find <Directory> -name <FileName>

如果您想在主目录和子目录中查找 27.jpg 文件,请运行以下命令,如以下屏幕截图所示:

find ~/ -name 27.jpg

正如您所看到的,该文件位于/home/linux/Downloads/recur子目录中。

上一个命令的替代方法是以下示例中显示的 tree 命令,您可以在当前目录中搜索名为 27.jpg 的同一文件:

tree -P 27.jpg

正如您在上图中看到的,格式有很大不同。只要您不需要复制完整路径来粘贴它,它似乎更加用户友好或更好。

以下屏幕截图显示了如何使用 find 命令递归搜索多个文件。

递归搜索多个文件的语法如下:

find . \( -name <FileName1> -o -name <FIleName2> " \)

请注意,第二个文件名之前有一个 –o 标志。您可以通过添加多个 –o –name 标志来添加多个文件。例如,要使用相同的命令查找 4 个文件,请使用以下语法:

find . \( -name <FileName1> -o -name <FIleName2> -o -name <FIleName3>" \)

在下图描述的实际示例中,使用此命令查找名为 27.jpg 的文件和名称以“DIAGRAM”开头但未指定扩展名的文件。相反,请使用通配符 (*) 查找任何名为 DIAGRAM 的文件,无论其类型如何。

find . \( -name 27.jpg -o -name "DIAGRAM*" \)

正如您在上图中看到的,这两个文件都是递归找到的。

下一个示例介绍如何使用 find 命令按扩展名查找文件。在下图中,您可以看到如何再次使用通配符递归查找所有 .jpg 文件。语法非常简单:

find ~/ -type f -name "*.<Extension>"

因此,要递归查找所有 .jpg 文件,请运行以下命令:

find ~/ -type f -name "*.jpg"

如上图所示,所有 jpg 文件及其路径均已成功列出。您可以将 .jpg 扩展名替换为您想要搜索的任何扩展名,例如 .png、.txt、.c 等。

现在,我们假设您不想递归地查找文件而是目录。您需要做的就是使用本教程第一个示例中显示的相同命令,然后添加 -type d 选项。语法如下:

find ~/ -type d -name <DirectoryName>

在下面的实际示例中,使用前面的语法查找recur目录。

find ~/ -type d -name recur

如上图所示,成功找到名为“recur”的目录。

您还可以使用以下语法按大小查找文件,其中 是包含子目录的主目录, 是您可以列出的文件的大小及其完整路径。

sudo find <Directory> -size<size><Unit>

以下示例描述如何查找 10 MB 大小的文件。您可以将 MB 中的 M 定义单位替换为 c(表示字节)、w 表示两个两字节字,k 表示千字节,G 表示吉比字节(注意单位区分大小写)。

要查找 10 MB 的文件,请执行以下命令:

sudo find /var -size 10M

所有 10M 文件及其路径均已正确列出。

根据权限查找文件的语法如下所示:

find <Directory> ~perm <Permissions>

假设您想要识别并列出具有读取、写入和执行权限的文件 (777)。运行的命令如下:

find ~/ -perm 777

本教程的最后一个示例展示了如何按大小查找并列出文件和目录。

du -hs ~/*

如图所示,文件按大小和适当的单位列出。 0 大小的目录和文件是空的。

结论

Linux 的多功能性和灵活性允许以多种方式递归地查找文件(和其他函数)。所有 Linux 用户(从新用户到系统管理员)都可以轻松地执行它们,无论其知识水平如何。前面描述的所有技术对于所有 Linux 发行版甚至某些 Unix 系统都有效。根据他们的手册页,某些标志可能在某些发行版中有所不同,但大多数都是通用的。如果您的 Linux 发行版与前面解释的任何命令都不匹配,您可以阅读手册页。强烈建议读者练习示例以融入这些知识。

非常感谢您阅读本 Linux 教程。请继续关注我们以获取更多 Linux 专业技巧。

©2015-2025 艾丽卡 support@alaica.com