我需要编写一个Bash脚本(最好是一行命令),以查找当前目录下包含特定文件扩展名的所有子目录,即
例如,假设我的目录内容如下:
在这种情况下,我希望该命令返回
我已经知道如何编写以下find命令,该命令可以找到
.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*'
然而我不确定如何编写命令来查找包含这些文件的目录。