如何查找文件

use*_*946 1 linux

我正在使用 linux 服务器并且缺少一个文件,我需要找到与名称 MyMissingFile 匹配的所有文件...如何发出一个命令,该命令将对用户文件夹下的所有目录进行递归搜索并告诉我文件的位置是
不是我不是root用户。谢谢

rap*_*ink 5

有多种方法可以找到文件。

最简单的方法可能是使用locate命令。此命令使用已知文件的缓存。为了使用它,您需要确保缓存是最新的,使用updatedb. 在您的情况下,您必须相信它是最新的,因为您不是 root 用户并且无法更新数据库。要使用locate,请键入:

$ locate MyMissingFile
Run Code Online (Sandbox Code Playgroud)

如果您只想要完全称为“MyMissingFile”的文件,请使用:

$ locate MyMissingFile | grep "/MyMissingFile$"
Run Code Online (Sandbox Code Playgroud)

现在,如果您知道您的文件在哪个目录中,您可以使用find. find不依赖缓存数据库,并将递归扫描目录并打印它找到的所有文件。有很多选项可以过滤找到的文件(请参阅man find列出它们),包括一个-name过滤文件名的选项。像这样使用它:

$ find $yourdirectory -name MyMissingFile
Run Code Online (Sandbox Code Playgroud)

这将匹配名称恰好为“MyMissingFile”的文件。要匹配包含“MyMissingFile”的名称,请使用:

$ find $yourdirectory -name "*MyMissingFile*"
Run Code Online (Sandbox Code Playgroud)

请注意,locate它通常比 快得多find,因为它在缓存中有答案,同时find需要读取给定目录下的所有文件。