通过真正的绝对路径的后缀子串找到一个文件



我今天在面试中遇到了这个问题。

例如,我想要的文件1.txt位于/data/users/xxx/u/a/b/c/1.txt中。现在,我只记得我想要的文件的绝对路径有后缀a/b/c/1.txt。在我的系统中可能有很多不同的1.txt

我应该使用哪个shell命令来查找具有此模式的命令。

find-wholename选项允许您指定路径名组件以及用于定位文件系统中文件的glob。您应该尽可能地调整启动目录,但如果您真的不知道文件的位置,可以从/开始。

在这种情况下,你可以做:

find / -type f -wholename "*a/b/c/1.txt"

您也可以使用默认情况下使用-wholename匹配的locate(mlocate(。locate的等效搜索为:

locate "*/a/b/c/1.txt"

需要注意的是,updatedb必须在创建文件后运行,才能位于mlocate.db中。否则,将找不到具有locate的文件。(还要注意,默认情况下,所有Linux发行版都不会在中安装locate(

相关内容

  • 没有找到相关文章

最新更新