我正在尝试在目录中查找文件,其中文件名和目录名都是已知的。例如,假设我想查找
“ ...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