폴더 및 하위 폴더에서 파일 수를 찾으십니까?


답변:


224

같은 것일 수 있습니다

find . -type f | wc -l

트릭을 할 것입니다. 상위 폴더에서 명령을 시도하십시오.


3
이름에 개행이 포함 된 파일에서는 솔루션이 실패합니다.
사용자가 알 수 없음

2
@user 알 수없는 :find . -type f -ls | wc -l
준비

1
find . -type f -print0 | tr -d -c '\0' | wc -c
주선

13
@arrange : 훨씬 빠릅니다 : find . -type f -printf . | wc -c-내 -exec echo 대신 솔루션 인쇄를 채택합니다.
사용자 알 수 없음

1
이 명령은 내 경우에는 매력처럼 작동했다. 흑 마법처럼 보인다
pcko1

27

tree명령을 사용하십시오 . tree패키지 를 설치해야 할 수도 있습니다 .

주어진 폴더 아래의 모든 파일과 폴더를 나열하고 끝에 요약을 나열합니다.


14

현재 디렉토리의 루트에서 파일 (확장자가없는 파일도 포함)을 계산하려면 다음을 사용하십시오.

ls -l | grep ^- | wc -l

현재 디렉토리의 루트에서 재귀 적으로 파일 (확장자가없는 파일도 포함)을 계산하려면 다음을 사용하십시오.

ls -lR | grep ^- | wc -l

1
숨겨진 파일은 포함하지 않습니다.
사용자 알 수 없음

참된. 귀하의 답변을 해결책으로 받아들이고 사용하는 경향이 있습니다.
user38537

13

가장 빠르고 쉬운 방법은을 사용하는 것 tree입니다. 속도는 출력 터미널에 의해 제한되므로 결과를에 파이프 tail -1하면 즉시 결과를 얻을 수 있습니다. -L옵션을 사용하여 원하는 디렉토리 수준으로 결과를 제어 할 수도 있습니다. 컬러 출력의 경우을 사용하십시오 -C. 예를 들면 다음과 같습니다.

$ tree share/some/directory/ | tail -1
558 directories, 853 files

$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files

아직 없으면 여기에서 확인할 수 있습니다 .


9
find -type f -printf . | wc -c

99 개의 줄 바꿈이 포함 된 파일 이름은 100 개의 파일로 계산되므로 find의 출력 줄을 세지 마십시오.


4
줄 바꿈이 포함 된 파일 이름은 매우 드문 경우입니다.
DisgruntledGoat

8
@DisgruntledGoat : 따라서 오류를 찾기가 매우 어렵습니다.
사용자가 알 수 없음

저는 특히 수년 후 좋은 엣지 케이스를 좋아합니다.
user38537

3

경로의 각 폴더에이 명령을 사용하십시오.

for D in *; do echo $D; find $D -type f| wc -l; done

1

find는 트리보다 빠르기 때문에 디렉토리에 공백을 허용하면서 현재 작업 디렉토리의 각 디렉토리 (CWD의 파일 무시)에서 파일을 계산하는 데 아래를 사용했습니다.

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done


결과를 파싱하는 ls것은 매우 나쁜 생각입니다.
souravc

훌륭한 코드, 어떻게 출력 줄을 줄이거 나 늘릴 수있는 파일 수를 줄이십시오
nightcrawler

0

당신이 사용할 수있는 find . | wc -l

find .현재 폴더에서 시작하는 모든 파일과 폴더 및 해당 내용을 나열합니다.
wc -l찾기 결과 계산


이 솔루션은 폴더도 계산하며, 내가 계산하고 싶지 않은 경우와 일치하는 원인을 표시했습니다. :)
topless

이름에 개행이 포함 된 파일에서는 솔루션이 실패합니다.
사용자가 알 수 없음

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.