如何使用命令行在Linux中查找文件和文件夹

大多数人使用图形文件管理器在Linux中查找文件,例如Gnome中的Nautilus,KDE中的Dolphin和Xfce中的Thunar。但是,无论使用哪种桌面管理器,都有几种方法可以使用命令行在Linux中查找文件。

使用查找命令

“查找”命令使您可以搜索已知文件名的文件。该命令的最简单形式是在当前目录中搜索文件,然后通过与提供的搜索条件匹配的子目录递归搜索文件。您可以按名称,所有者,组,类型,权限,日期和其他条件搜索文件。

在提示符下键入以下命令将列出在当前目录中找到的所有文件。

找 。

“查找”后的点表示当前目录。

要查找与特定模式匹配的文件,请使用 -名称 争论。您可以使用文件名元字符(例如 * ),但您应该放一个转义字符( \ )放在前面,或将其用引号引起来。

例如,如果我们要在Documents目录中找到所有以“ pro”开头的文件,则可以使用 cd文件/ 命令更改为Documents目录,然后键入以下命令:

找 。 -名称pro \ *

列出当前目录中以“ pro”开头的所有文件。

注意:find命令默认为区分大小写。如果您要搜索的单词或短语不区分大小写,请使用 -我的名字 使用find命令的选项。这是不区分大小写的版本 -名称 命令。

如果 找不到符合您条件的任何文件,因此不会产生任何输出。

find命令具有许多可用于完善搜索的选项。有关find命令的更多信息,请运行 找人 在“终端”窗口中,然后按Enter。

使用定位命令

find命令比find命令快,因为它使用以前建立的数据库,而find命令在真实系统中搜索所有实际目录和文件。查找命令返回包含指定字符组的所有路径名的列表。

数据库是通过cron定期更新的,但是您也可以随时自己更新它,以便获得最新的结果。为此,在提示符下键入以下命令:

须藤更新

出现提示时输入密码。

locate命令的基本形式是查找文件系统上从根开始的所有文件,其中包含全部或部分搜索条件。

找到我的数据

例如,上述命令找到了两个包含“ mydata”的文件和一个包含“ data”的文件。

如果要查找完全包含且仅包含搜索条件的所有文件或目录,请使用 -b 使用locate命令的选项,如下所示。

找到-b‘\ mydata’

上面命令中的反斜杠是通配符,它​​提供了一种将非特定文件名中的通配符扩展为一组特定文件名的方法。通配符是一种符号,在计算表达式时可以用一个或多个字符替换。最常见的通配符是问号( ? ),代表一个字符,并带有星号( * ),代表连续的字符串。在上面的示例中,反斜杠禁止将“ mydata”隐式替换为“ * mydata *”,因此最终只能得到包含“ mydata”的结果。

mlocate命令是locate的新实现。它为整个文件系统建立索引,但是搜索结果仅包括当前用户有权访问的文件。当您更新mlocate数据库时,它将时间戳信息保留在数据库中。这使mlocate无需重新读取目录内容即可知道目录的内容是否已更改,并使对数据库的更新更快,对硬盘的要求也更低。

安装mlocate时,/ usr / bin / locate二进制文件更改为指向mlocate。要安装mlocate,如果Linux发行版中尚未包含mlocate,请在提示符下键入以下命令。

sudo apt-get install mlocate

注意:在本文后面,我们将向您显示命令,该命令使您可以确定命令的可执行文件所在的位置(如果存在)。

mlocate命令与标准locate命令使用的数据库文件不同。因此,您可能需要通过在提示符下键入以下命令来手动创建数据库:

须藤/etc/cron.daily/mlocate

在手动创建数据库或从cron运行脚本之前,mlocate命令将不起作用。

有关locate或mlocate命令的更多信息,请键入 男子找到 或者 人搬迁 在“终端”窗口中,然后按Enter。这两个命令显示相同的帮助屏幕。

使用哪个命令

“哪个”命令返回执行命令时调用的可执行文件的绝对路径。这对于在桌面,面板或桌面管理器中的其他位置查找用于创建程序快捷方式的可执行文件的位置很有用。例如,键入命令 哪个Firefox 显示下图所示的结果。

默认情况下,which命令仅显示第一个匹配的可执行文件。要显示所有匹配的可执行文件,请使用 -一种 命令的选项:

哪一个-Firefox

您可以一次搜索多个可执行文件,如下图所示。仅显示找到的可执行文件的路径。在下面的示例中,仅找到“ ps”可执行文件。

注意:which命令仅搜索当前用户的PATH变量。如果您搜索仅对root用户具有普通用户身份的可执行文件,则不会显示任何结果。

有关which命令的更多信息,请在Terminal窗口的命令提示符下键入“ man which”(不带引号),然后按Enter。

使用Whereis命令

whereis命令用于查找命令的二进制文件,源文件和手册页文件的位置。例如,输入 Firefox在哪里 在提示符下显示结果,如下图所示。

如果只想显示可执行文件的路径,而不想显示源页面和手册页的路径,请使用 -b 选项。例如,命令 whereis -b Firefox 仅显示 / usr / bin / firefox 作为结果。这很方便,因为与搜索该程序的源文件和手册页相比,您搜索该程序的可执行文件的可能性更高。您也可以只搜索源文件( -s )或仅用于手册页( -米 ).

有关whereis命令的更多信息,请键入 男人哪里 在“终端”窗口中,然后按Enter。

了解Whereis命令和which命令之间的区别

whereis命令显示命令的二进制文件,源代码和手册页的位置,而where命令仅显示命令的二进制文件的位置。

whereis命令在特定目录列表中搜索二进制文件,源文件和man文件,而where命令则搜索当前用户的PATH环境变量中列出的目录。对于whereis命令,可以在命令手册页的FILES部分中找到特定目录的列表。

当涉及到默认显示的结果时,whereis命令显示它找到的所有内容,而which命令仅显示它找到的第一个可执行文件。您可以使用 -一种 选项,前面已讨论过,用于which命令。

因为whereis命令仅使用硬编码到命令中的路径,所以您可能不会总是找到所需的内容。如果您正在搜索某个程序,您认为可能将其安装在whereis命令的手册页中未列出的目录中,则可能希望将which命令与whereis命令一起使用。 -一种 选项来查找整个系统中所有出现的命令。


$config[zx-auto] not found$config[zx-overlay] not found