
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)
( zsh
glob은 활성화된 경우에도 포함되지 .
않습니다 ..
(예: globbing 한정자 사용)).dotglob
(D)
파일이 없을 때 오류 메시지를 방지하려면 N
globbing 한정자를 추가하세요.
count *(ND)
일치하는 항목이 없으면 glob이 아무것도 확장되지 않습니다(인수 없음, 빈 인수 아님).
줄 바꿈은 파일 이름의 모든 문자만큼 유효하므로 출력 ls
또는 find
to를 파이핑하는 것은 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
...