vim을 사용하여 현재 디렉터리와 모든 하위 디렉터리의 모든 파일을 여는 방법은 무엇입니까?

vim을 사용하여 현재 디렉터리와 모든 하위 디렉터리의 모든 파일을 여는 방법은 무엇입니까?

지금까지 제가 사용해본 방법은 vim */**하위 디렉터리의 모든 파일을 여는 것 같지만,아니요현재 디렉터리의 파일을 선택하고 해당 디렉터리의 모든 파일을 vim *엽니다 . current그러나 현재 디렉토리의 모든 파일을 여는 방법그리고모든 하위 디렉터리?

답변1

그리고 zsh:

vim ./**/*(.)

기타 쉘:

find . -name '.?*' -prune -o -type f -exec vim {} +

열기만 가능(숨겨지지 않음)정기적인모든 수준의 하위 디렉터리에 있는 파일(디렉터리, 심볼릭 링크, 파이프, 장치, 게이트, 소켓 등은 제외)


vim ./**/*(D-.)

기타 쉘, GNU find:

find . -xtype f -exec vim {} +

숨겨진 파일을 열고(숨겨진 디렉터리를 탐색하는 것도 가능) 일반 파일에 대한 심볼릭 링크를 열 수도 있습니다.


그리고:

vim ./***/*(D-.)

기타 쉘:

find -L . -type f -exec vim {} +

하위 디렉터리를 볼 때 기호 링크를 탐색할 수도 있습니다.


한 수준의 하위 디렉터리만 원하는 경우:

vim ./* ./*/*

./일부 파일 이름이 -또는 로 시작 하는 경우 glob 앞에 접두사를 붙이는 것이 좋습니다 +.

(물론 이러한 파일 find도 찾을 수 있습니다. 파일 목록이 크고 적어도 GNU의 경우 zsh여러 인스턴스를 실행할 수 있는 경우 이름에 다음과 같은 바이트 시퀀스가 ​​포함된 숨겨진 파일/디렉터리를 건너뛸 수 없습니다. 귀하가 속한 지역을 구성하지 마십시오. )의 유효한 문자입니다.vimfind

답변2

배쉬에서 shopt -s extglob:

for file in **/**; do [[ -f "$file" ]] && vim "$file"; done

에 따르면 참고하시기 바랍니다.스티븐의 코멘트, Bash 4.3 이전에는 해당 디렉토리의 모든 심볼릭 링크를 따랐습니다.

관련 정보