如何在Linux上从终端搜索文件

虽然有很多方法可以在Linux上搜索和查找文件和目录,但最简单和最快速的可能是通过终端。 然而,很多Linux用户都不了解这一点,这导致了不必要的沮丧。 这是一个快速指南,希望可以帮助您找到您要在系统中寻找的内容。

使用Locate命令

“定位”命令是Linux用户应该利用的第一个手段,因为它比其他任何东西要快得多。 这个无与伦比的速度的原因是locate命令实际上并不是在您的本地硬盘上搜索需要查找的文件或目录,更像是读取包含系统中所有文件路径的mlocate.db数据库文件。 要使用locate,打开一个终端,然后键入locate,然后键入您要查找的文件名。

查找也可以告诉您数据库中搜索关键字匹配的次数。 这是通过在命令中包含一个“-c”参数来实现的,代表“count”。

用户需要注意的是,“定位”需要您正在查找的文件的具体和确切的名称,与其他更灵活的工具相反。 这意味着,找到很好找到你确定的名称,但不是很好,当你不完全记住文件名。

此外,由于“定位”读取数据库文件,结果可能已过时,并不完全正确。 为了减轻此问题,您可以在终端会话中键入“sudo updatedb”来更新文件路径数据库。

如果之后你仍然没有得到你正在寻找的东西,或者你只是被结果的数量所压倒,那么继续下一步是“查找”命令。

使用查找命令

“查找”命令是一个功能更强大,但也更慢的搜索实用程序。 这是因为与“定位”命令相反,“查找”实际上在您的磁盘上搜索用户之后的文件和目录。 查找是完美的,当您尝试查找文件或目录,但您不记得其名称,因为“查找”可以搜索属于某个用户或一组用户的文件,已修改或访问的文件最近,具有特定大小范围的文件,隐藏文件,可执行文件,只读文件和具有某些权限的文件。 最好的部分是用户可以在一个“查找”命令中自由组合上述标准的多个,从而基本上缩小了结果。

说到缩小时,运行“查找”时要做的第一件事就是告诉它在特定的目录上进行搜索。 这将显着加快搜索过程,但始终取决于目录的大小。 如果您知道文件可能位于哪里,请打开终端,导航到目录并运行“查找”。 [文件名]”。 该点告诉发现在当前目录中搜索。 如果要搜索您的主目录,请用“〜/”替换点,如果要搜索整个文件系统,请改用“/”。

例如,我想在我的下载目录中搜索包含海报的文件。 我知道文件名中包含单词“poster”,但我不完全记住这个名字。 因此,我将通过终端使用“cd Downloads”导航到我的下载文件夹,然后输入命令:

sudo find . -name "*poster*"

结果如下:

这告诉我,在“下载”文件夹中有一个名为“billy_poster”的pdf文件。 如果我不知道它在哪里,“找到”仍然会让我知道,如果我在父目录中搜索,它在“下载”文件夹中。

现在,如果我将“-name”参数替换为“-iname”,我可以得到结果,而不是信件。 这是“定位”中没有的东西,所以当您不确定文件名时,另一个有用的元素。

现在,我们假设我还在搜索同样的海报文件,我唯一记得的是它的尺寸小于5 MB。 在这种情况下我将使用的命令是:

find ~/ -size -5M

如果我知道它比说2MB要高,命令就是“找到〜/ -size + 2M”。 最好的部分是找到支持布尔运算符,使搜索更加强大。 对于这个例子,我将使用一个命令,结合我的知识,文件的大小小于5兆字节,也超过2.这个命令将是:

find / -size -5M -and -size +2M

最后,我们建议我们不要忘记该文件,但是我们记得我们在三分钟之内访问过该文件。 要找到它,请使用find命令:

find / -amin -3

这将是“找到/ -amin -30”半小时,“-amin -120”两个小时等。如果您在两天前访问该文件,请改用:

find / -time -2

这将显示过去两天在搜索位置访问的所有文件。

我认为上面介绍了大多数常用的用例情况。 有关强大的“查找”命令的更多信息,请打开终端并键入“man find”。 祝你好运找到你要找的东西。

有关Linux find命令的更多示例,请点击此处

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏