Versi BSD yang dudigunakan dalam OS X melaporkan ukuran dengan blok 512-byte - ukurannya pada dasarnya dibulatkan ke nilai 512-byte berikutnya. Ini memberi tahu Anda ruang pada disk, yang lebih besar dari jumlah data. Jika Anda memiliki banyak file kecil, perbedaannya bisa besar.
Ini sebuah contoh.
Ini adalah nilai dengan reguler du. Ada dalam blok 512-byte:
$ du -s
248 .
The -hHasil bendera di sejumlah lebih mudah dibaca, dalam kilobyte. Seperti yang diharapkan, itu setengah dari jumlah blok 512-byte:
$ du -hs
124K .
Akhirnya, Anda dapat menggunakan finddan awkmemberi Anda jumlah byte aktual dalam file. Ini agak lambat, tetapi berhasil:
$ find . -type f -exec ls -l {} \; | awk '{sum += $5} END {print sum}'
60527
Nilai ini sama persis dengan angka yang dilaporkan oleh jendela Find Info Get. (Tidak ada fork atau xattr aneh dalam set file ini.) Secara signifikan lebih kecil dari nilai yang dilaporkan oleh du.
Begini cara kerjanya: ia mendapat daftar semua file, dan meneruskannya ke ls -l; kemudian awkdigunakan untuk menghitung byte. The -type fbendera ada sehingga hanya file (dan tidak direktori) dikirim ke ls. Tanpa tanda itu, itu juga akan mengirim nama direktori ls, dan setiap file akan terdaftar dua kali: sekali sebagai file individual, dan sekali sebagai item dalam direktori.
Versi GNU dari dudapat memberikan nilai dalam byte aktual, bukan blok. Sangat disayangkan bahwa versi BSD dutidak fleksibel.
-kopsi untuk menggunakan ukuran blok 1K-byte