【问题标题】:How to find all files with a particular parent directory in linux?如何在linux中查找具有特定父目录的所有文件?
【发布时间】:2020-01-20 17:11:31
【问题描述】:

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

有没有办法做到这一点?

【问题讨论】:

  • locate filename.extension | grep foldername/!#:1

标签: linux


【解决方案1】:

使用-path 开关和find

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

【讨论】:

    【解决方案2】:

    试试这个

    locate "/*/foldername/filename.extension"
    

    如果您已使用 updatedb 更新索引

    【讨论】:

      【解决方案3】:

      你可以运行:

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

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

      PS。 你也可以使用“find”的“-exec”参数。

      【讨论】:

        【解决方案4】:

        回答更一般的问题,我希望这会奏效

        find . -path '*/foldername/*'
        

        但不是 all files with parent,而是提供 all files with parents。这将只显示孩子:

        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 \;
        

        【讨论】:

          【解决方案5】:
          1. 找到所有名为examples的目录。
          2. 然后省略任何父目录名为node_modules的结果。

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

          【讨论】:

            【解决方案6】:

            只在父目录中显示结果

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

            【讨论】:

            • 不,这不会用一个命令在所有子文件夹中找到文件。
            • 这只会打印出带有上下文的父级,考虑到您正在寻找一个存在于多个目录中的文件,这只会显示所有目录,而不会优化搜索。
            猜你喜欢
            • 1970-01-01
            • 2010-09-06
            • 1970-01-01
            • 2019-02-25
            • 1970-01-01
            • 2020-07-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多