[linux] Linux 디렉토리에서 파일을 재귀 적으로 계산

Linux 디렉토리에서 파일을 재귀 적으로 계산하는 방법은 무엇입니까?

나는 이것을 찾았다:

find DIR_NAME -type f ¦ wc -l

그러나 이것을 실행하면 다음 오류가 반환됩니다.

찾기 : 경로는 식 앞에 와야합니다. ¦



답변

이것은 작동해야합니다 :

find DIR_NAME -type f | wc -l

설명:

  • -type f 파일 만 포함합니다.
  • |( 및 아님¦ ) find명령의 표준 출력을wc 명령의 표준 입력으로 합니다.
  • wc(단어 수의 줄임말) 입력에서 개행, 단어 및 바이트 수를 계산합니다 ( 문서 ).
  • -l 줄 바꿈 만 계산합니다.

노트:

  • 교체 DIR_NAME. 현재 폴더에서 명령을 실행합니다.
  • 당신은 또한 제거 할 수 있습니다 -type f카운트에 디렉토리 (및 심볼릭 링크)를 포함 위해를 .
  • 파일 이름에 줄 바꿈 문자가 포함될 수있는 경우이 명령이 초과 될 수 있습니다.

예제가 작동하지 않는 이유에 대한 설명 :

표시 한 명령에서 “파이프”( |)를 사용하여 두 명령을 연결 ¦하지 않고 쉘이 명령 또는 이와 유사한 것으로 인식하지 못하는 깨진 막대 ( )를 사용합니다. 그 때문에 오류 메시지가 나타납니다.


답변

현재 디렉토리의 경우 :

find -type f | wc -l


답변

현재 디렉토리 아래의 각 디렉토리에있는 파일 수를 분석하려면 다음을 수행하십시오.

for i in */ .*/ ; do
    echo -n $i": " ;
    (find "$i" -type f | wc -l) ;
done

물론 한 줄로 갈 수 있습니다. 괄호 wc -l는 ( find $i -type f이 경우) 출력 을보고 있어야하는 것을 명확 하게합니다 .


답변

당신이 사용할 수있는

$ tree

트리 패키지를 설치 한 후

$ sudo apt-get install tree

(데비안 / 민트 / 우분투 리눅스 머신에서).

이 명령은 파일 수뿐만 아니라 디렉토리 수도 별도로 표시합니다. -L 옵션을 사용하여 최대 표시 레벨 (기본적으로 디렉토리 트리의 최대 깊이)을 지정할 수 있습니다.

-a옵션 을 제공하여 숨겨진 파일도 포함 할 수 있습니다 .


답변

내 컴퓨터 에서 허용되는 답변 rsync보다 약간 빠릅니다 find | wc -l.

$ rsync --stats --dry-run -ax /path/to/dir /tmp

Number of files: 173076
Number of files transferred: 150481
Total file size: 8414946241 bytes
Total transferred file size: 8414932602 bytes

두 번째 줄에는 위의 예에서 파일 수가 150,481 개 있습니다. 보너스로 전체 크기도 바이트 단위로 얻습니다.

비고 :

  • 첫 번째 줄은 파일, 디렉토리, 심볼릭 링크 등을 모두 합한 것이므로 두 번째 줄보다 큽니다.
  • --dry-run(또는-n 짧은) 옵션은 실제로 파일을 전송하지하는 것이 중요합니다!
  • -x“파일 시스템 경계를 넘지 않음”옵션을 사용했습니다. 즉, 파일 시스템을 실행하고 /외부 하드 디스크를 연결 한 경우 루트 파티션의 파일 만 계산합니다.

답변

UNIX의 파일 이름에는 개행 (예, 개행)이 포함될 수 있으므로 wc -l너무 많은 파일이 계산 될 수 있습니다. 모든 파일에 대해 점을 인쇄 한 다음 점을 계산합니다.

find DIR_NAME -type f -printf "." | wc -c


답변

여기에 몇 가지 답변을 결합하면 가장 유용한 해결책은 다음과 같습니다.

find . -maxdepth 1 -type d -print0 |
xargs -0 -I {} sh -c 'echo -e $(find "{}" -printf "\n" | wc -l) "{}"' |
sort -n

공백과 괄호를 포함하는 파일 이름과 같은 이상한 것을 처리 할 수 ​​있습니다. 또한 파일 수에 따라 출력을 정렬합니다.

-maxdepth하위 디렉토리도 계산 한 후 수를 늘릴 수 있습니다 . 특히 중첩 된 디렉토리 구조가 -maxdepth많을 경우 높은 수의 디렉토리 구조를 사용하는 경우 시간이 오래 걸릴 수 있습니다.