게 찾을 수 있는 방법은 크기의 어떤 지정한 파일이 있는가?

StackOverflow https://stackoverflow.com/questions/902233

  •  05-09-2019
  •  | 
  •  

문제

명령하려고 합은 최대 크기:

find . -iname "*.dmg" -exec du -sh '{}' \; 3&> /dev/null |
    awk '{print $1}' | summming_up_program???

을 찾을 수 있는 간단한 솔루션?

우분투 솔루션입니다.에 대한 감사를 Awk 을 Ayman.

find . -iname "*.dmg" -printf '%b\n' |
    awk 'BEGIN { s = 0 } {s += $1 } END { print "%dMB", s / 2^20 }'
도움이 되었습니까?

해결책

find . -iname '*.dmg' -exec stat -f '%z' '{}' \; |
     awk 'BEGIN { s = 0 } {s += $1 } END { print s }'

stat 파일의 크기를 얻는 데 사용됩니다. awk 모든 파일 크기를 합산하는 데 사용됩니다.

편집하다:

포크가 아닌 솔루션 stat:

find . -iname '*.dmg' -ls | 
     awk 'BEGIN { s = 0 } {s += $7 } END { print s }'

다른 팁

wc -c *.pyc | tail -n1 | cut -f 1 -d ' '

수도 그 후에 빠른 고양이킹 파일이 파이프를 통해. wc -c 를 계산하지 않습니다 바이트를,그것을 검색하의 크기에 inode...또는 나 hdd 는 읽기 속도 717GB/s:-)

$ time wc -c very-big.pcap
5394513291 very-big.pcap
real    0m0.007s
user    0m0.000s
sys     0m0.000s

고양이 *.dmg | WC -C

고양이는 모든 파일을 stdout에 복사하고 WC는 덤프 된 것의 크기를 계산합니다. 디스크에 아무것도 쓰지 않습니다.

효율적이지는 않지만 심지어 이해할 수 있습니다 :)

향상된 Ayman의 비 포크 명령 :

find . -iname '*.dmg' -ls 3&> /dev/null | 
      awk 'BEGIN { s = 0 } {s += $7 } END { print "%dGB", s / 2^30 }'

초기 답변을 수정 한 Ayman에게 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top