. 그리고 .. find 및 ls의 결과에서

. 그리고 .. find 및 ls의 결과에서

목록을 방지하고 결과를 표시하는 find방법 이 있습니까 ? 나는 이 결과를 출력에서 ​​보는 것에 전혀 신경 쓰지 않으며 결과를 정확하게 계산하기 위해 출력을 효과적으로 파이프하는 것을 방해합니다.ls -l...wc -l

중요한 경우에는 에서 일하고 있습니다 zsh.

답변1

의 경우 대신 ls사용하십시오 .-A-a

에서 man ls:

   -A, --almost-all
          do not list implied . and ..

답변2

와 함께 zsh:

count() echo $#
count *        # non-hidden files (all types)
count *(D)     # files (all types)
count **/*(D)  # files recursively (all types)
count **/*(D/)  # directories only (recursively)

( globbing 한정자 와 마찬가지로 glob은 활성화된 경우에도 zsh포함되지 않습니다 .. )..dotglob(D)

파일이 없을 때 오류 메시지를 방지하려면 Nglobbing 한정자를 추가하세요.

count *(ND)

일치하는 항목이 없으면 glob이 아무것도 없는 상태(인수 없음, 빈 인수 아님)로 확장됩니다.

개행 문자는 파일 이름의 다른 문자와 마찬가지로 유효한 문자이므로 출력 ls또는 findto를 파이핑하는 것은 wc -l올바르지 않습니다.

/POSIXly에서는 개행 문자 대신 문자 수를 셀 수 있습니다 .

find . ! -name . -prune -print | grep -c /

또는 다음 트릭을 사용하여 재귀적으로:

find .//. ! -name . -prune -print | grep -c //

답변3

도트 디렉토리를 제외 하려면 find다음을 사용할 수 있습니다.

$ find . ! -path . -type d

$ find . ! -path . -type d | head -5
./.vim_SO
./.vim_SO/bundle
./.vim_SO/bundle/vim-fugitive
./.vim_SO/bundle/vim-fugitive/plugin
./.vim_SO/bundle/vim-fugitive/doc
...

관련 정보