我正在使用Linux服务器和一个文件丢失,我需要find所有匹配名称MyMissingFile的文件…我怎样才能发出一个命令,将执行一个recruivesearch用户文件夹下的所有目录,并告诉我在哪里文件是
我不是root用户。 谢谢
怎么样
cd <userfolder> find . -name <filename> -print
顺便说一下,文件名可以包含模式,和
从而
find . -name '*MyMissingFile*' -print
有几种方法来查找文件。
最简单的一个可能是使用locate命令。 该命令使用已知文件的caching。 为了使用它,你需要使用updatedb来确保caching是最新的。 在你的情况下,你将不得不相信它是最新的,因为你不是根,不能更新数据库。 要使用locate ,请键入:
$ locate MyMissingFile
如果您只需要称为“MyMissingFile”的文件,请使用:
$ locate MyMissingFile | grep "/MyMissingFile$"
现在如果你知道你的文件在哪个目录下,你可以使用find 。 find不依赖于caching数据库,并将recursion扫描目录并打印find的所有文件。 有大量的选项来过滤find的文件(见man find列出它们),包括一个-name选项来过滤文件名。 像这样使用它:
$ find $yourdirectory -name MyMissingFile
这将匹配名称完全是“MyMissingFile”的文件。 要匹配包含“MyMissingFile”的名称,请使用:
$ find $yourdirectory -name "*MyMissingFile*"
请注意, locate通常比find快得多,因为它在caching中有答案,而find需要读取给定目录下的所有文件。
locate -r '/MyMissingFile$'
比使用grep的build议更有效率。 但不是每个版本的定位接受-r(尽pipe在GNU findutils中定位)。