Saturday, December 1, 2012

Shell: Summing up lots of (large) numbers

Sometimes you want to know the exact amount of bytes all the files in a directory tree takes. For example, checking the sum of sizes of all files is a quick way to see if a copy operation went OK - if they are the same, there are reasons to believe that it is OK.

du gives varying numbers from filesystem to filesystem

However, 'du' doesn't always give the right number - is it the size of the directory nodes causing differences?
du -sb .

awk-solutions have major precision problems

The solutions flying across the intertubes using awk, goes awry with large numbers. The following have a ceiling on 2147483647, as that is the max of a 32 bit integer number. Absurdly, awk just displays that if it reaches the limit.
find . -type f -printf "%s \n" | awk '{sum += $1 } END {printf "%i bytes\n",sum }'

You can get around that by going to floats (awk really uses double-precision floating-point for all numbers), but then you loose the whole point, exactness:
find . -type f -printf "%s \n" | awk '{sum += $1 } END { printf "%.1f bytes\n",sum }'

The Solution: bc - arbitrary precision calculator language!

Finding the sum of all the files in a directory tree:
echo `find . -type f -printf "%s+"`0 | bc

Same in GiB (GigaBytes as in 1024^3 bytes), using absurd scale to get exactness ('scale' is bc's concept of decimal precision) :
echo scale=50\; \(`find . -type f -printf "%s+"`'0)/(1024^3)' | bc

If you want MiB or KiB, then change the ^3 to ^2 or ^1 respectively.

5 comments:

  1. Trắng da có nhiều phương pháp , nhưng hầu hết mọi người điều sử dụng các loại thuốc trắng da nhưng đặt ra nhiều câu hỏi quanh các loại thuốc này như thuốc uống trắng da nào hiệu quả , thuốc uống trắng da ivory caps có hại không , thuốc uống trắng da ivory caps có tốt không ? Đó là một vài câu hỏi liên quan đến thuốc làm trăng da ivory caps , cùng tìm hiểu nhé . Ngoài trắng da thì my pham sakura nhat ban còn giúp da giữ được nét tự nhiên và chống lão hóa vì dùng kem chống lão hóa sakura , ngoài làm trắng da thì còn là kem chống nắng tốt nhất và giá cả thì cũng là vấn đề vì vậy có nhiều câu hỏi như kem chống nắng neutrogena giá bao nhiêu ,.. Có nhiều loại nên có nhiều giá khác nhau . Nếu gót chân bị nứt nẻ thì nên dùng kem trị nứt gót chân neutrogena foot cream sẽ giúp bạn có được bàn chân đẹp như ý.

    ReplyDelete
  2. raspberry roots sleeping mask kem trị mụn đầu đen hiệu quả Neutrogena Deep,...
    kem lót rimmel bb cream Các loại kem trị mụn tốt nhất này
    Sữa rửa mặt dành cho nam giới biore đều được sản xuất
    sữa tắm dưỡng da on the body english iris bởi những hãng mỹ phẩm danh tiếng
    tinh chất đặc trị mụn lucia đến từ những nước kiểm soát gắt gao nhất
    bộ sản phẩm trị mụn vedette về chất lượng như Mỹ, Châu Âu, Nhật, Hàn,...
    son môi ysl rouge pur couture Với giá cả hợp lý cùng uy tín,
    sua abbott grow g-power chất lượng các loại kem trị mụn
    sữa tắm dưỡng da kháng khuẩn biore luôn được đặt lên hàng đầu,
    kerasys hair clinic system volume set đến với các sản phẩm do MegaVita

    ReplyDelete
  3. với sữa rửa mặt tạo bọt sẽ giúp bạn làm sạch da mặt nhờn, bụi bặm sua rua mat danh cho da nhon nám da là bệnh khó chữa trị, nhưng bạn đừng quá lo ngại, bởi giờ đây đã có viên uống trị nám da nucos white sẽ giúp các chị em đánh bay vết nám lâu năm kia sữa dưỡng thể trắng da hazeline làm đẹp là điều hết sức cần thiết đối với các chị em, không một phụ nữ nào lại khong muốn sở hữu làn da trắng mịn màng tự nhiên
    collagen my loai nao tot bổ sung collagen giúp chống lại quá trình bị lão hóa, mang đến làn da tuổi đôi mươi cho các cô gái.

    ReplyDelete
  4. công ty vận chuyển Á Châu chuyên cung cấp dịch vụ
    Vận chuyển hàng hóa đi Nha Trang để đáp ứng nhu cầu đó chúng tôi đã cung cấpdịch vụ vận tải quà Tết đến quý khách hàng.
    Ngoài ra chúng tôi còn cung cấp các dịch vụ vận tải khác như
    Dịch vụ vận tải hàng hóa đi Nha Trang

    Dịch vụ vận tải hàng hóa đi Đà Nẵng

    Dịch vụ vận tải hàng hóa đi Phú Quốc

    Liên hệ: Mr.Tài – 0166 944 5753 >< zalo
    skype: nguyentaiachau94,
    mail:nguyentaiachau@gmail.com
    https://www.facebook.com/vt.bacnam/?ref=bookmarks

    ReplyDelete
  5. mặc dầu còn hơn 1 tháng nữa mới tới Tết Nguyên đán 2017 nhưng tại Hà Nội, phổ biến cây đào bích, đào phai đã sớm khoe sắc trên gian phoi thong minh.

    Vừa tìm cành đào phai tại chợ hoa truyền bá, bà Nguyễn Thị Liên (51 tuổi, P.Bạch Mai, Q.Hai Bà Trưng) chia sẻ: “Tôi sắm cành đào phai giá 160.000 đồng. Năm nào vợ chồng tôi cũng đánh xe lên chợ này tậu cành đào về đón rằm tháng Chạp và Tết Dương lịch”.

    ReplyDelete