다음과 같은 디렉토리 구조가 있습니다.
.
├── Untitled Folder
│ ├── Untitled Folder
│ │ └── zing
│ │ ├── first
| | | └── dum
│ │ ├── second
│ │ └── third
│ ├── Untitled Folder 2
│ └── Untitled Folder 3
├── Untitled Folder 2
│ ├── Untitled Folder
│ ├── Untitled Folder 2
│ │ └── zing
│ │ ├── fifth
| | | └── dum
│ │ ├── fourth
│ │ └── sixth
│ └── Untitled Folder 3
└── Untitled Folder 3
├── Untitled Folder
├── Untitled Folder 2
└── Untitled Folder 3
└── zing
├── eighth
└── seventh
└── dum
모든 zing
디렉토리 의 직접적인 하위 디렉토리 만 나열하고 싶습니다 .
샘플 출력은 다음과 같습니다.
first
second
third
fifth
fourth
sixth
eighth
seventh
나는 시도했다
% find . -type d | grep zing
./Untitled Folder 3/Untitled Folder 3/zing
./Untitled Folder 3/Untitled Folder 3/zing/eigthth
./Untitled Folder 3/Untitled Folder 3/zing/seventh
./Untitled Folder 3/Untitled Folder 3/zing/seventh/dum
./Untitled Folder 2/Untitled Folder 2/zing
./Untitled Folder 2/Untitled Folder 2/zing/fifth
./Untitled Folder 2/Untitled Folder 2/zing/fifth/dum
./Untitled Folder 2/Untitled Folder 2/zing/fourth
./Untitled Folder 2/Untitled Folder 2/zing/sixth
./Untitled Folder/Untitled Folder/zing
./Untitled Folder/Untitled Folder/zing/first
./Untitled Folder/Untitled Folder/zing/first/dum
./Untitled Folder/Untitled Folder/zing/third
./Untitled Folder/Untitled Folder/zing/second
그것은 내가 원하지 않는 zing
(이 경우 dum
) 의 아이의 아이를 보여 주고 있습니다.
예상 출력을 어떻게 얻을 수 있습니까?
Bash, Globstar 활성화 (사용 shopt -s globstar
).
printf '%s\n' **/zing/*/
마지막 경로 구성 요소에 대해서만
for dir in **/zing/*/; do basename "$dir"; done
POSIX 찾기.
find . -type d -path '*/zing/*' -prune
-prune
일치하는 디렉토리에서 내림차순을 방지합니다.
마지막 경로 구성 요소에 대해서만
find . -type d -path '*/zing/*' -prune -exec basename {} \;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다