디렉터리 구조의 경로를 고려하세요.
/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