繁体   English   中英

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

[英]How to find all files with a particular parent directory in linux?

如何在 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

有没有办法做到这一点?

-path开关与find 一起使用

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

试试这个

locate "/*/foldername/filename.extension"

如果您已使用updatedb更新索引

你可以运行:

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

“find”命令将查找所有文件,“grep”将通过正则表达式过滤它们。

附注。 您也可以使用“查找”的“-exec”参数。

回答更通用的问题,我希望这会奏效

find . -path '*/foldername/*'

但不是所有带有 parent 的文件,而是提供所有带有祖先的文件 这将只显示儿童:

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 \;
  1. 查找所有名为examples目录。
  2. 然后省略具有任何名为node_modules父目录的结果。

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

只在父目录中显示结果

Find -maxdepth 1 -type f -name 'file.extension'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM