如何查找文件

如何查找文件

我正在使用 Linux 服务器,文件丢失了,我需要找到所有与名称 MyMissingFile 匹配的文件...我该如何发出命令,对用户文件夹下的所有目录进行递归搜索,并告诉我文件在哪里?
我不是 root 用户。谢谢

答案1

怎么样

 cd <userfolder>
 find . -name <filename> -print

顺便说一句,文件名可以包含一个模式,并且

因此

 find . -name '*MyMissingFile*' -print

答案2

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

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

$ locate MyMissingFile

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

$ locate MyMissingFile | grep "/MyMissingFile$"

现在,如果您知道文件在哪个目录中,则可以使用findfind不依赖于缓存数据库,而是将递归扫描目录并打印找到的所有文件。有大量选项可以过滤找到的文件(请参阅man find列出它们),包括一个-name按文件名过滤的选项。按如下方式使用它:

$ find $yourdirectory -name MyMissingFile

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

$ find $yourdirectory -name "*MyMissingFile*"

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

答案3

locate -r '/MyMissingFile$'

比使用 grep 的建议更有效。但不是每个版本的locate都接受-r(尽管GNU findutils中的locate接受-r)。

相关内容