考虑目录结构中的路径
/A/B/C/D
/A/B/C/E
/A/B/O/P
现在如果我想列出所有包含子目录C的路径,那么可以通过grep来完成吗?预期输出:
/A/B/C/D
/A/B/C/E
我尝试使用 grep 和 find 但无法实现此目的。
答案1
虽然 ka3ak 的答案有效,但 find 带有参数“-path”,因此您可以简单地使用
find . -type d -path "*/c/*"
-path 似乎也快一点:
[hexathos:~/test] $ time find . -regextype posix-extended -regex ".*/c/.*"
./a/b/c/d
./a/b/c/e
real 0m0,013s
user 0m0,010s
sys 0m0,000s
[hexathos:~/test] $ time find . -type d -path "*/c/*"
./a/b/c/d
./a/b/c/e
real 0m0,012s
user 0m0,007s
sys 0m0,003s
答案2
你只需要find
这个:
find A -type d -regextype posix-extended -regex ".*/C/.*"
对于以下目录结构
A
└── B
├── C
│ ├── D
│ └── E
├── C1
│ └── E
└── O
└── P
它会返回:
A/B/C/E
A/B/C/D