Linux 中的 find 命令及示例 - Linux 命令行教程Linux 中的 find 命令及示例 - Linux 命令行教程Linux 中的 find 命令及示例 - Linux 命令行教程Linux 中的 find 命令及示例 - Linux 命令行教程
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中的 find 命令及示例 - Linux 命令行教程

发表 admin at 2025年2月28日
类别
  • 未分类
标签

如果您需要搜索一个或多个特定文件或目录,Linux 中的 find 命令是完成这项工作的完美工具。 find 命令可以搜索具有特定名称的文件,但您也可以搜索遵循特定命名模式的文件。这可以扩展到根据文件大小、文件扩展名或许多其他选项查找文件。

find 命令非常通用,并且包含大量选项。学习如何使用它可能需要一些时间,但最终,它比手动或通过 GUI 搜索文件有用得多。您还可以指示 find 命令对匹配特定搜索条件的任何文件执行另一个命令。无论您是在当前目录、其子目录之一还是整个系统上的任何位置搜索文件,find 命令都可以胜任这项任务。

在本教程中,您将通过示例学习如何在 Linux 中使用 find 命令。请按照下面的说明了解可与此命令一起使用的各种选项。

在本教程中您将学习:

  • 如何在 Linux 上使用 find 命令

常用选项

当您第一次查看示例命令时,Linux 中的 find 命令可能看起来语法令人困惑。事实上,它确实有很多选项,其中一些可能会变得相当复杂。但别担心,我们在这里将分解 find 命令的所有棘手部分。跟随学习该命令的工作原理,您很快就会成为该命令的专家。

Linux 中的 find 命令基本示例

  1. 让我们从最简单的语法开始,它将在当前工作目录中按文件名搜索文件。为此,我们将指示 find 搜索 . 目录并使用 -name 选项指定文件名。

    $ find . -name "example.txt"
    

  2. 接下来,让我们尝试在不同的目录中搜索特定类型的文件。在此示例中,我们将在 /home 目录(及其子目录)中搜索任何以 .png 结尾的文件名。

    $ find /home -name "*.png"
    

  3. 您可以使用-type选项指示find仅搜索文件或目录。如果不指定此选项,该命令将返回两者的结果。仅搜索文件:

    $ find /home -type f -name "example"
    

    仅搜索目录:

    $ find /home -type d -name "example"
    

  4. 使用 -iname 选项代替 -name 使搜索不区分大小写。

    $ find /home -type f -iname "example.txt"
    
  5. 如果您不希望 find 命令过于深入地遍历子目录,可以使用 -maxdepth 选项指定限制。例如,此命令将 find 限制为两个子目录的深度:

    $ find . -type f -maxdepth 2 -name "example.txt"
    
  6. 现在您已经开始了解 find 命令及其选项的工作原理,让我们在下一个命令中结合几个新选项。下面的示例将查找过去 7 天内修改过的所有 .conf 文件,这些文件属于用户 linuxconfig,并且存在于该用户的主目录中。

    $ find /home/linuxconfig -type f -user linuxconfig -mtime -7 -name "*.conf"
    
  7. 如果指定 -delete 选项,find 命令可以自动删除它找到的文件。使用此选项时要非常小心,并确保首先在没有它的情况下运行 find 命令,以便您准确地知道它计划删除的内容。

    $ find . -type f -name "*.tmp" -delete
    

注意
您始终可以使用 man 命令来阅读有关 find 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。

高级用法

find 命令的最高级用法包括使用它对匹配特定搜索条件的文件执行其他命令。有些语法对于新手来说非常令人困惑。即使是经验丰富的 Linux 用户有时也需要回顾这些示例,因为很难准确记住分号或其他不常见字符应该出现在命令中的位置。别担心,我们将在下面的例子中解释它,它会开始变得有意义。

Linux 高级示例中的 find 命令

  1. find 命令的功能可以通过 -exec 选项进一步扩展。使用此选项可以对 find 找到的每个文件执行命令。例如,我们将找到的每个文件的文件权限更改为 750:

    $ find . -type f -name "*.conf" -exec chmod 750 '{}' \; -print
    
  2. 根据您在 -exec 参数内执行的命令,有时使用加号代替分号会更有效。这样做将允许 find 同时对多个文件执行该命令。这与前面的示例相反,在前面的示例中一次只有一个文件的权限发生更改。

    $ find . -type f -name "*.conf" -exec chmod 750 '{}' + -print
    

结束语

在本教程中,我们了解了 Linux 上的 find 命令。 find 命令在搜索文件和目录方面非常强大,因为该命令中包含大量选项。我们能够告诉命令根据非常具体的条件进行搜索,例如文件的所有者以及上次修改的时间,从而使我们能够真正微调我们的搜索结果。

好像这还不够,-exec 选项进一步扩展了该命令的用途。而且,无论你相信与否,我们仍然只触及了表面。 find 命令还可以与 xargs 结合使用来执行更多操作。您也值得花时间查看 find 的手册页,因为还有许多我们未在此处介绍的利基选项。

©2015-2025 Norria support@norria.com