![특정 하위 디렉터리가 있는 경로 찾기](https://linux55.com/image/104699/%ED%8A%B9%EC%A0%95%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EA%B0%80%20%EC%9E%88%EB%8A%94%20%EA%B2%BD%EB%A1%9C%20%EC%B0%BE%EA%B8%B0.png)
디렉터리 구조의 경로를 고려하세요.
/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