如何在Linux中找到所有具有特定父目录的文件?

dw1jzc5e  于 5个月前  发布在  Linux
关注(0)|答案(7)|浏览(66)

如何在Linux命令终端中找到所有具有特定父目录的文件?
我知道使用find查找所有文件,如下所示:

find . -name filename.extension

字符串
但是是否可以找到父目录为foldername的所有filename.extension文件?
我尝试了以下方法,但不起作用:

find . -name foldername/filename.extension


我找不到任何例子来证明这一点。
所以我希望得到的一些示例结果如下:

./example/project/website/foldername/filename.extension
./folder/demo/foldername/filename.extension
./more/files/foldername/filename.extension
./business/assets/foldername/filename.extension
./steven/foldername/filename.extension


有什么方法可以做到这一点吗?

cpjpxq1n

cpjpxq1n1#

-path交换机与find配合使用

find . -path \*/foldername/filename.extension

字符串

9nvpjoqh

9nvpjoqh2#

就试试这个

locate "/*/foldername/filename.extension"

字符串
如果你已经用updatedb更新了索引

aiqt4smr

aiqt4smr3#

您可以运行:

find ./ | grep 'foldername/filename.extension$'

字符串
“find”命令将查找所有文件,“grep”将通过正则表达式过滤它们。
另外,你也可以使用“-exec”参数来查找。

mum43rcc

mum43rcc4#

问了一个更一般的问题,我希望这能起作用

find . -path '*/foldername/*'

字符串
但是它给出了所有具有祖先的文件,而不是所有具有父级的文件。这将只显示子级:

find . -path '*/foldername/*' | sed 's|.*foldername/\([^/]*\).*|\1|' | sort -u


find . | egrep -o 'foldername/[^/]*' | sed 's|[^/]*/||' | sort -u


但这并不能给予路径,所以

find . -iname foldername -exec find {} -maxdepth 1 -mindepth 1 \;

sbdsn5lh

sbdsn5lh5#

1.查找所有名为examples的目录。
1.然后忽略父目录名为node_modules的结果。

find . -type d -name examples | grep -v node_modules

r7s23pms

r7s23pms6#

如果使用fd(https://github.com/sharkdp/fd):

fd -p foldername/filename.extension .

字符串

qlvxas9a

qlvxas9a7#

只在parentdirectory中显示结果
第一个月

相关问题