Linux系统中如何查找文件
有时,您会发现自己在系统中搜索特定文件。筛选数百个目录甚至文件可能是一项真正艰巨的任务。有时,这可能就像大海捞针一样。在本指南中,我们将展示一些有价值的方法,您可以利用这些方法以简单、无缝的方式在 Linux 中查找文件。这些跨越所有 Linux 发行版。
让我们开始。
1)在Linux中使用locate命令查找文件
locate 命令是一个快速的命令行工具,您可以利用它在 Linux 中查找文件。顾名思义,该命令通过搜索数据库来使用文件名来查找文件。数据库内部包含文件的位及其在本地 Linux 系统上的相应路径。让我们深入研究一些命令示例。
locate 命令采用以下语法:
locate OPTION pattern
搜索具有特定文件名的文件
在其基本语法中,locate 命令用于在给定目录路径中搜索特定文件。语法如下所示:
locate filename
例如,要搜索名为的文件
latest.tar.gz
,这是我从WordPress官方下载站点下载的WordPress安装文件,运行命令:
locate latest.tar.gz
该命令从根分区开始搜索文件的所有可能位置。
搜索文件时忽略大小写
默认情况下,locate 命令区分大小写。例如,
LINUX.txt
不同于
linux.txt
如果您不确定文件名是大写还是小写字符,可以使用忽略大小写
-i
标志如下图所示。
locate -i file1.txt
上面的命令将显示文件名的所有实例,无论是大写还是小写字符。
显示匹配条目的数量
要显示匹配文件条目的数量,请使用
-c
带有locate命令的选项。在下面的示例中,locate 命令将范围缩小到带有
.pdf
扩大。
locate -c [.pdf]*
上面的命令将计算所有带有
.pdf
文件扩展名。
限制搜索查询的数量
在大多数情况下,您可能会在终端上获得大量输出。值得庆幸的是,您可以限制搜索结果并确定要在终端上打印的查询数量。要实现这一点,只需使用
-n
标记,后跟搜索查询数。
例如,以下命令将搜索查询限制为最多 30 个查询。
locate *.pdf* -n 30
刷新数据库
定位命令依赖于
<a href="https://linux.die.net/man/5/mlocate.db" target="_blank" rel="noopener noreferrer">mlocate</a>
数据库。需要定期更新,命令行实用程序才能按预期工作。要更新数据库,请使用
updatedb
如图所示的实用程序和如图所示的 sudo 权限。
sudo updatedb
2)在Linux中使用find命令查找文件
Linux find 命令是另一个命令行实用程序,可用于查找系统上的文件。事实上,它是初学者在成为 Linux 专家的过程中必须学习的基本命令之一。与locate命令不同,它非常慢并且通常需要时间来填充结果。 find 命令采用以下语法:
find location comparison-criteria search term
列出当前工作目录中的所有文件
首先,您可以通过调用以下命令来概览当前目录中的所有文件。请务必记下命令末尾的句点。
find .
搜索给定目录中的所有文件
或者,您可以决定搜索或显示给定目录中包含的所有文件。例如,在本例中,我们正在搜索主目录中“Documents”目录中的所有文件。
find /home/winnie/Documents
在文件夹中搜索特定文件名
要缩小到指定目录中的特定文件,请使用以下语法:
find directory_name -name "file_name"
例如,要在主目录中搜索文件 unixmen.txt,请运行以下命令
find /home/winnie -name unixmen.txt
仅搜索文件或仅搜索目录
find 命令使您可以灵活地决定是只搜索文件还是只搜索目录。要指定文件搜索,请使用
-f
标志并搜索目录,请使用
-d
选项。我们举几个例子:
要仅搜索 /etc 目录中的文件,请运行以下命令:
sudo find /etc -type f
这将打印 /etc 目录中的所有文件。这只是输出的一个片段
要在 /etc 目录中搜索名为“hosts”的文件,请添加
-name
标记如命令所示:
sudo find /etc -type f -name hosts
此外,您可以仅搜索目录并省略文件。例如,要仅搜索 /etc 目录中的目录,请运行所示的命令
sudo find /etc -type d
更具体地说,您可以搜索特定目录,例如要在 /etc 路径中搜索 SSL 目录,运行
sudo find /etc -type d -name ssl
在 Linux 中查找特定用户拥有的文件
使用
-user
标志,您可以搜索特定用户拥有的文件。例如,在以下命令中,我们在 /home/winnie/ 位置搜索用户 'James' 拥有的文件。
3)使用catfish工具在Linux中查找文件
Catfish 是一个基于 GTK+ 的轻量级 GUI 工具,可帮助您查找各种文件类型。该工具利用底层的 find 和locate 命令来执行文件搜索。它易于安装,在大多数情况下,您可以轻松地从您喜爱的发行版的软件中心下载它。对于 Ubuntu/Debian 和 mint,只需运行:
sudo apt install catfish
安装后,只需使用应用程序管理器启动 catfish,如图所示。
启动后,您就可以开始根据您的首选位置搜索文件。在下面的示例中,我们在主目录中搜索 WordPress 安装文件。正如您所看到的,它搜索文件路径的所有可能位置。此外,您可以根据大小、位置和修改日期对结果进行排序。
结论
我们已经到了本指南的结尾。我们演示了如何使用两个命令行工具(locate 和 find 命令)在 Linux 上搜索文件,以及如何使用名为 Catfish 的图形前端工具查找文件。我们希望今后您能够更轻松地搜索文件。