【发布时间】:2019-01-05 00:36:11
【问题描述】:
我需要编写一个 Bash 脚本(最好是单行脚本)来查找当前目录下的所有 子目录,其中包含具有特定文件扩展名的任何文件,即.tf。棘手的部分是一个文件夹中可能有多个.tf 文件,我需要文件夹 - 不是文件名。
例如,假设我的目录内容如下所示:
.
├── docs
│ ├── README.md
│ └── diagram.png
├── project
│ └── main.py
├── Makefile
├── terraform
│ ├── environments
│ │ ├── prod
│ │ │ └── main.tf
│ │ └── staging
│ │ └── main.tf
│ └── module
│ ├── ecs.tf
│ ├── rds.tf
│ ├── s3.tf
│ ├── security_group.tf
│ ├── sqs.tf
│ └── variable.tf
├── tests
| └── test_main.py
└── .terraform
└── ignore_me.tf
在这种情况下,我希望命令返回 terraform/module、terraform/environments/prod 和 terraform/environments/staging。我还需要一种方法来过滤掉某些不应包含的目录。在上面的示例中,请注意我没有包含点文件目录.terraform。
我已经知道怎么写下面的find命令,可以自己找到.tf文件:
find . -name '*.tf' -not -path '*.terraform*'
但是我不确定如何编写命令来查找包含这些文件的目录。
【问题讨论】:
标签: bash