Versi BSD yang du
digunakan 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 -h
Hasil 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 find
dan awk
memberi 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 awk
digunakan untuk menghitung byte. The -type f
bendera 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 du
dapat memberikan nilai dalam byte aktual, bukan blok. Sangat disayangkan bahwa versi BSD du
tidak fleksibel.
-k
opsi untuk menggunakan ukuran blok 1K-byte