Tôi không thể hiểu tại sao tôi nhận được kết quả sau:
ls -l
cho tôi biết kích thước của một tệp đã cho (LỊCH SỬ) là "581944":
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
nói rằng đó là "572":
$ ls -s HISTORY
572 HISTORY
Tôi rõ ràng cần phải làm cho các giá trị sử dụng một thang so sánh. Vì vậy, trước tiên tôi xác nhận rằng sử dụng --block-size 1
in ls -l
cho tôi kết quả giống như trước:
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
Sau đó, tôi làm tương tự ls -s
để có được một giá trị trong cùng một tỷ lệ:
$ ls -s --block-size 1 HISTORY
585728 HISTORY
Kết quả khác nhau! 581944 585728 .
Tôi đã thử tạo các giá trị tương đương theo cách khác, bằng cách sử dụng -k
, nhưng tôi nhận được:
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
Một lần nữa, kết quả khác nhau, 569 572 .
Tôi đã thử chỉ định --si để đảm bảo cả hai tùy chọn đều sử dụng cùng một tỷ lệ, nhưng không có kết quả:
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
... một lần nữa, các giá trị khác nhau: 582k 586k .
Tôi đã cố gắng tìm kiếm trên web, nhưng điều duy nhất tôi có thể thấy rằng dường như có liên quan là này :
Một số tệp có "lỗ hổng" trong đó, do đó mức sử dụng được liệt kê bởi
ls -s
(...) nhỏ hơn kích thước tệp được liệt kê bởils -l
. "
(lưu ý rằng trong kết quả của tôi, điều ngược lại xảy ra: ls -s
trả về kích thước lớn hơn ls -l
, không nhỏ hơn.)
Trong khi đó, trang này nói rằng
không có cách nào thanh lịch để phát hiện các lỗ tập tin Unix.
Vì vậy, làm thế nào tôi có thể đối phó với sự khác biệt này? Những giá trị nào trong số này có thể được coi là chính xác? Điều này có thể là một lỗi trong ls
?
ls -s
tính điều đó?