如何在文件系统中任何位置的特定命名目录中找到特定命名的文件?

如何在文件系统中任何位置的特定命名目录中找到特定命名的文件?

我正在尝试在目录中查找文件,其中文件名和目录名都是已知的。例如,假设我想查找

...don't know this part of file path stem).../dirname/filename.extension

我有一种感觉,我正在寻找这样的东西:

find / -type d -name "dirname" | xargs find * -type f -name "filename.extension"

但我似乎找不到正确的组合。正确的方法是什么?

答案1

也许您正在寻找以下-path选项:

find / -path "*/dirname/filename.extension"

您的命令中的问题是*管道后面的joker|扩展到当前目录中的文件列表,因此find命令将在这些文件内进行搜索。另一种方法是使用选项-exec{}将被第一个 find 找到的内容替换(但是,为什么要这样做呢?):

find / -type d -name "dirname" -exec find {} -type f -name "filename.extension" \;

答案2

使用-wholename而不是-name。它将允许您搜索完整路径名。

find / -wholename "*directory/filename" -print

相关内容