디렉토리에서 파일 수를 계산하지만 재귀 적으로 계산하지 않는 방법


30

간단한 질문입니다. 하위 디렉토리를 포함하여 수행하는 방법을 보여주는 답변 을 보았지만 현재 디렉토리에만 폴더가 아닌 파일 수를 알고 싶습니다. 감사.

답변:


60
ls -F |grep -v / | wc -l
  1. ls -F 모든 파일을 나열하고 표시기 (* / => @ | 중 하나)를 항목에 추가하십시오.
  2. grep -v /슬래시를 포함 하지 않는 모든 문자열을 유지
  3. wc -l 카운트 라인

디렉토리를 제외한 모든 것의 목록.

나는 당신이 그것을 깨뜨리고 섹션을 설명하는 것에 정말로 감사합니다. 작동하고 잘 설명 된 답변에 감사드립니다!
bcsteeve

1
모든 답변이 내 문제를 해결하는 동안이 문서를 문서화하고 이해하기 쉬운 것으로 선택합니다. 그러나 모두에게 감사합니다!
bcsteeve 1

15

이 oneliner를 사용해보십시오 :

find -maxdepth 1 -type f | wc -l

이것만으로도 좋으며 파일 만 있으면됩니다. :-)
thom

링크 및 특수 문자 장치를 건너 뜁니다.
ojblass

모든 답변은 훌륭합니다! 먼저, 감사합니다. 둘째 ... 어떻게 선택합니까?
bcsteeve

6

이 시도

ls -al | grep ^[-] | wc -l
  1. ls -al -긴 목록 형식으로 모든 파일을 나열하십시오.
  2. grep ^[-] -ls -al을 사용하여 파일 목록을 표시 할 때 일반 파일을 나타내는 기호 인 "-"로 시작하는 문자열을 검색합니다.
  3. wc -l -카운트 라인

소프트 링크는 어떻습니까? 하드 링크 된 파일은 어떻습니까?

좋은 것은 파일과 링크 뿐이며 다른 것은 없습니다.

소프트 / 하드 링크의 경우 대체 돌출 -에 의해l
andr3w

나는 당신이 그것을 깨뜨리고 섹션을 설명하는 것에 정말로 감사합니다. 작동하고 잘 설명 된 답변에 감사드립니다!
bcsteeve

2

Bash 와 함께 플레이하고 싶기 때문에 톰의 답변 을 추가하고 싶습니다 . 여기 간다:

echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"

Bellow는 내 /data디렉토리 의 예입니다 .

Directory /data has 580569 file(s).

그리고 내 설명은 다음과 같습니다.

  1. echo double-quoted-message 원하는 메시지를 인쇄합니다.
  2. $(any-desirable-valid-command)큰 따옴표로 묶인 메시지 안에 echo관련 명령 실행 결과가 인쇄됩니다.
  3. pwd 현재 디렉토리를 인쇄합니다.
  4. ls -F모든 파일을 나열하고 표시기 (* / => @ | 중 하나)를 항목에 추가합니다. 나는 이것을 thom 's answer 에서 복사했습니다 .
  5. grep -v /일반 텍스트를 검색하는 명령이며 -v /매개 변수는 슬래시가 포함되지 않은 모든 문자열을 유지합니다.
  6. wc -l 라인 카운팅을 인쇄합니다.

나는이 질문이 3 세라는 것을 알고 있습니다. 또 다른 대답을 추가하려는 충동을 가질 수는 없습니다.


2

이 경우 tree시스템에 설치하면이 명령을 사용할 수 있습니다 :

tree -L 1 /path/to/your/directory | tail -n 1

해당 디렉토리의 파일 및 디렉토리 수를 표시합니다.

-L n 검색 깊이를 보여줍니다.

당신은 설치할 수 있습니다 treesudo apt-get install tree.


-3

특정 확장자를 가진 총 파일 수를 계산하려면 다음을 입력하십시오.

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