在 Linux 中查找文件时排除目录 [Step-By-Step]

Linux 中的 find 命令是一个非常方便的工具,可以在您的机器中查找特定文件。 但有时,它会输出大量文件并使搜索结果混乱。 如果您确定要查找的文件不在特定目录中,您实际上可以将其从搜索结果中排除。 在本文中,我们将学习如何从 file 命令的搜索结果中排除目录。

首先,让我们看看 find 命令的正常输出是什么样的。 在这里,我正在当前目录中搜索名称中包含“文件”的所有文件。 为此,我将输入:

find . -name ‘file*’ 
正常查找命令输出

这列出了 ‘new’ 子目录中名为 file1、file2 和另一个 file3 的 3 个文件,以及它们的完整路径。 在这里,“。” 表示文件位于当前目录中。

从搜索结果中排除目录

现在,假设我们不希望“find”命令在“new”目录中找到我们的文件,我们可以简单地将其从搜索中排除。 这样做实际上可以为您提供更快的结果,因为您不必搜索所有内容。 这对您很有用,尤其是在您有大文件夹的情况下。 我们可以在终端中输入以下命令来实现这一点:

find . -path './new' -prune -o -name 'file*' 
从搜索结果中排除目录

正如我们所见,运行此命令实际上会忽略位于 test 目录中的 file3,但它仍会在我们的结果中列出“新”文件夹,为避免此输出,我们可以使用以下命令:

find . -path './new' -prune -o -name 'file*' -print 
从输出中排除新目录从输出中排除新目录

正如我们所见, -print 该选项允许我们从输出中排除目录名称。

概括

我们希望通过使用本文,您无需在不必要的地方搜索文件,从而节省您的时间。 如果您对 find 命令有任何疑问或疑问,可以随时使用评论框询问他们。