MAC OS에서 터미널을 사용할 때 디렉터리와 모든 하위 디렉터리의 파일 이름과 경로를 반환해야 하지만 파일에 특정 파일 확장자(예: .txt)가 있는 경우에만 해당됩니다.
이것을 시도했지만 파일 확장자로 필터링되지 않습니다.
find $PWD/* -maxdepth 20
나는 또한 이것을 시도했지만 내 디렉토리 경로를 반환하지 않았습니다.
ls my-dir |egrep '\.txt$'
답변1
Macos를 사용하는 경우 쉘은 아마도 zsh일 것입니다.
print -rC1 -- $PWD/**/*.txt(N)
print
r
이름이 현재 작업 디렉토리 또는 그 이하로 끝나는 1
C
숨김되지 않은 파일(일반, 심볼릭 링크, FIFO 등 모든 유형)의 전체 경로를 어휘순으로 정렬 합니다..txt
제한할 숨겨진 한정자를 포함하려면 D
한정자( (...)
위 내부) 를 추가하세요 ..
정기적인파일만, om
연령별로 정렬 :q
,인용하다파일 경로에 특수 문자(있는 경우)...
2개의 별도 열에 있는 이러한 경로의 h
모든 내용을 확인 하려면 다음을 수행하세요.t
() {print -rC2 -- $@:h $@:t; } $PWD/**/*.txt(N)
우리는 olumns에 있는 @rguments의 h
eads와 aails를 인쇄하는 익명 함수에 경로 목록을 전달합니다.t
2
C
답변2
읽다 man find
. 올바른 방법은 다음과 같습니다.
find "$PWD" -type f -name '*.txt' -print
또는 파일 이름에 공백이나 기타 "재미있는" 문자가 포함된 경우(표준에 따라 /
및를 제외한 모든 문자 NUL 0x00
가 허용됨):
find "$PWD" -type f -name '*.txt' -print0 | \
xargs -0 -r stat -c "%N\n"
읽다 man xargs stat
.