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
?
ls -s
dihitung?