Tôi đoán bạn đã nhận được một chữ cái đó trong tệp có echo a > file
hoặc vim file
, có nghĩa là, bạn sẽ có chữ cái đó và một dòng mới bổ sung trong đó (hai ký tự, do đó là hai byte). ls -l
hiển thị kích thước tệp theo byte, không phải khối (cụ thể hơn: chiều dài tệp ):
$ echo a > testfile
$ ls -l testfile
-rw-r--r-- 1 user user 2 Apr 28 22:08 testfile
$ cat -A testfile
a$
(lưu ý cat -A
hiển thị dòng mới dưới dạng $
ký tự)
Ngược lại ls -l
, du
sẽ hiển thị kích thước thật chiếm trên đĩa:
$ du testfile
4
(thực tế, du
hiển thị kích thước theo đơn vị 1kiB, vì vậy ở đây kích thước là 4 × 1024 byte = 4096 byte = 4 kiB, là kích thước khối trên hệ thống tệp này)
Để ls
hiển thị điều này, bạn sẽ phải sử dụng -s
tùy chọn thay vì / ngoài -l
:
$ ls -ls testfile
4 -rw-r--r-- 1 user user 2 Apr 28 22:08 testfile
Cột đầu tiên là kích thước được phân bổ, một lần nữa theo đơn vị 1kiB. Cuối cùng có thể được thay đổi bằng cách chỉ định --block-size
, ví dụ
$ ls -ls --block-size=1 testfile
4096 -rw-r--r-- 1 aw aw 2 Apr 28 22:08 testfile