在 Linux 中按名称查找文件

大多数情况下,您在 Linux 上寻找一个文件,但您并不确切知道它在系统磁盘上的真实位置。

有多种方法可以 在 Linux 命令行中查找文件. 最常见和最可靠的方法是使用 find 命令。

find 命令用途非常广泛,用途太多,但在这里我将重点关注按文件名查找文件。

我将解释如何使用“查找”命令:

  • 使用文件名搜索文件
  • 使用确切名称搜索文件
  • 搜索特定模式的文件
  • 搜索多个文件
  • 从搜索结果中排除某些文件。

除此之外,我还将展示如何将 grep 命令与 find 命令的输出一起使用。 让我们首先从概述开始 find 命令。

实用程序“查找”查找与特定参数集(如文件名、修改日期、扩展名等)匹配的文件。它具有以下格式:

find path pattern

如果未指定路径,则搜索当前目录及其子目录。

使用文件名搜索文件

使用文件名查找文件是 find 命令的常用操作。 这 -iname 无论大小写如何,选项都会查找文件。

为了 example,假设您有两个文件 abc.txt 和 ABC.txt。 两者名称相同,但情况不同。 使用 find 命令,您可以在结果中获得两个文件:

find -iname abc.txt
在忽略大小写的情况下查找具有其名称的文件

使用确切名称搜索文件

-name 选项区分大小写,与 -iname 选项,因此您将获得具有确切名称的文件。

为了 example让我们找一个文件名 abc.txt

find -name abc.txt

文件的名称可以由通配符组成,您将在本指南后面看到。

搜索具有特定模式的文件

您还可以过滤遵循给定模式的文件。 为此,您可以使用通配符。

例如,假设您正在查找系统上所有以“.conf”扩展名结尾的配置文件:

find /etc -type f -name "*.conf" | grep client.conf
查找带有扩展名的文件查找具有特定扩展名的文件

同样的方法,你也可以 搜索具有相同名称但具有任何扩展名的文件 三个字符为:

find ~ -name "abc.???" 
查找具有任何扩展名的文件查找具有相同名称但任何扩展名的文件

如果你有几个 包含公共字符串的文件名,比如说“VM”,这种情况下的 find 命令将如下所示:

find -name '*VM*' 
查找具有匹配模式的文件查找具有匹配模式的文件

到目前为止,我们已经使用了带有“find”命令的单个目录(主目录)。

你也可以 在多个目录中搜索 通过在 CLI 上指定它们:

find ~/Desktop/example1/ ~/Desktop/example2/ -name 'abc*.*'
在多个目录中查找文件在多个目录中查找文件

搜索多个文件和多个模式

假设您想在一个目录中查找多个文件 .msi.txt 作为文件类型。

在这里你需要同时使用 nametype CLI 上的选项为:

find -type f ( -name "*.txt" -o -name "*.msi" )
搜索多个文件搜索多个文件和多个模式

在类似的方法中,您可以使用 extra 将上述命令扩展为更多文件 -o 选项。

从搜索结果中排除某些文件

find 命令还可以从搜索结果中排除某些类型的文件:

find -name '*abc*' -type f ( ! -name '*.msi' )
从查找搜索结果中排除某些文件从查找搜索结果中排除某些文件

在这里,“查找”命令将查找名称中包含“abc”字符串的所有文件。 但是,它会过滤掉 .msi 文件类型。

“查找”命令的其他常见示例

您有更多选项可以与“查找”命令一起使用。 让我分享几个这样的例子:

系统报告磁盘空间不足? 像这样查找更大的文件:

find -size +2000M

使用上述命令,您可以找到占用空间超过 2000 兆字节的文件。

如果您需要保存您的发现以供以后调查,请将其重定向到一个文件:

find -name '*abc*' -type f ( ! -name '*.msi' ) > mysearch.txt
Save  find 命令的结果Save find 命令的结果

type find 命令的选项打开了许多机会。

您可以将它与不同类型文件的不同文件描述符结合使用。 为了 example’f’ 表示常规文件, ‘d’ 表示目录, ‘l’ 表示符号链接等。

find /var/log -type f -name "*.log" 

结论

在本指南中,我解释了如何使用 find 命令按文件名搜索文件。 您看到了多种缩小搜索路径的方法,最重要的是,如何结合“通配符”进行模式搜索。

find 命令还有很多用途。 就像您可以使用它来查找最近修改的文件一样。 如果您有兴趣,这里有一些更常见的示例。

您始终可以使用“查找”命令搜索手册页以深入了解各种选项。