Saya tidak tahu mengapa saya mendapatkan hasil berikut:
ls -l
memberi tahu saya ukuran file yang diberikan (SEJARAH) adalah "581944":
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
mengatakan itu "572":
$ ls -s HISTORY
572 HISTORY
Saya jelas perlu membuat nilai menggunakan skala yang sebanding. Jadi pertama-tama saya mengkonfirmasi bahwa menggunakan --block-size 1
di ls -l
memberi saya hasil yang sama seperti sebelumnya:
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
Lalu saya melakukan hal yang sama ls -s
untuk mendapatkan nilai dalam skala yang sama:
$ ls -s --block-size 1 HISTORY
585728 HISTORY
Hasil yang berbeda! 581944 ≠ 585728 .
Saya mencoba menghasilkan nilai yang sebanding sebaliknya, menggunakan -k
, tetapi saya mendapatkan:
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
Sekali lagi, hasil yang berbeda, 569 ≠ 572 .
Saya mencoba menentukan --si untuk memastikan kedua opsi menggunakan skala yang sama, tetapi tidak berhasil:
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
... sekali lagi, nilai yang berbeda: 582k ≠ 586k .
Saya mencoba mencari di web tetapi satu-satunya hal yang saya temukan yang tampaknya relevan adalah ini :
Beberapa file memiliki "lubang" di dalamnya, sehingga penggunaan yang terdaftar oleh
ls -s
(...) kurang dari ukuran file yang terdaftar olehls -l
. "
(perhatikan bahwa dalam hasil saya yang sebaliknya terjadi: ls -s
mengembalikan ukuran lebih besar dari ls -l
, tidak lebih kecil.)
Sementara itu, halaman ini mengatakan itu
tidak ada cara yang elegan untuk mendeteksi lubang file Unix.
Jadi, bagaimana saya bisa mengatasi perbedaan ini? Manakah dari nilai-nilai ini yang dapat dianggap benar? Mungkinkah ini bug di dalamnya ls
?
sumber
ls -s
dihitung?sudo tune2fs -l /dev/sdaX|grep Inode
ataudf -i
untuk semua partisi.ls -lsh ~/Downloads/torrents
beri saya, misalnya92K -rw-r--r-- 1 waldir waldir 350M Sep 15 2012 video.avi.part
,. Yaitu, 92K, yang dikembalikan oleh opsi -s, adalah ruang aktual dari file yang diambil, filesystem-wise, dan 350M, dikembalikan oleh opsi -l, adalah ukuran penuh file yang akan dimiliki jika itu sepenuhnya diunduh (yaitu jika semua byte, dari awal hingga selesai, tidak nol). Lihat lists.freebsd.org/pipermail/freebsd-questions/2012-June/…ls -s
memberi tahu Anda ukuran file yang dialokasikan , selalu kelipatan dari unit alokasi.ls -l
memberitahu ukuran sebenarnya. Cara mudah untuk menguji:sumber