명령줄을 사용하여 디렉터리의 파일 수를 어떻게 얻을 수 있나요?

명령줄을 사용하여 디렉터리의 파일 수를 어떻게 얻을 수 있나요?

많은 파일이 포함된 디렉토리가 있습니다. ls카운트를 제공하는 스위치가 표시되지 않습니다 . 파일 수를 가져오는 명령줄 마법이 있나요?

답변1

"문서"에 대한 광범위한 정의를 사용하십시오.

ls | wc -l

(숨겨진 파일은 계산하지 않으며 파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다.)

숨겨진 파일을 포함하고( .및 제외 ..) 개행 문제를 방지하려면 정식 방법은 다음과 같습니다.

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

또는 재귀적으로:

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

답변2

파일의 좁은 정의의 경우:

 find . -maxdepth 1 -type f | wc -l

답변3

유용하다고 생각했지만 어떤 버전이 필요한지 du --inodes잘 모르겠습니다 . 및 를 사용하는 대안보다 훨씬 du빠릅니다 .findwc

Ubuntu 17.10에서는 다음이 작동합니다.

du --inodes      # all files and subdirectories
du --inodes -s   # summary
du --inodes -d 2 # depth 2 at most

| sort -nr포함된 inode 수를 기준으로 내림차순으로 정렬하는 데 와 함께 사용됩니다 .

답변4

ls/를 사용한 wc가장 완전한 대답 은 아마도

ls -Aq | wc -l

도트 파일의 개수를 세고 싶다면

ls -q | wc -l

그렇지 않으면.

  • -A포인트 파일을 계산하지만 .합계를 생략하는 것입니다 ...
  • -qls대체 비그래픽 문자, 특히 개행 문자를 사용하여 ?파일당 1줄 출력

터미널에서 출력 라인을 얻으려면 ls(즉, 파이핑하지 않고 wc) -1옵션을 추가해야 합니다.

ls(coreutils 8.23을 사용하여 동작 테스트)

관련 정보