디렉터리 및 하위 디렉터리 경로가 포함된 특정 확장자를 가진 모든 파일을 반환합니다.

디렉터리 및 하위 디렉터리 경로가 포함된 특정 확장자를 가진 모든 파일을 반환합니다.

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의 heads와 aails를 인쇄하는 익명 함수에 경로 목록을 전달합니다.t2 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.

관련 정보