ฉันเดาว่าคุณมีตัวอักษรตัวหนึ่งในไฟล์ที่มีecho a > fileหรือvim fileซึ่งหมายความว่าคุณจะมีตัวอักษรนั้นและมีการขึ้นบรรทัดใหม่เพิ่มเติม (อักขระสองตัวดังนั้นสองไบต์) ls -lแสดงขนาดไฟล์เป็นไบต์ไม่ใช่บล็อก (เฉพาะเจาะจงมากขึ้น: ความยาวไฟล์):
$ echo a > testfile
$ ls -l testfile
-rw-r--r-- 1 user user 2 Apr 28 22:08 testfile
$ cat -A testfile
a$
(โปรดทราบว่าcat -Aแสดงบรรทัดใหม่เป็น$อักขระ)
ในทางตรงกันข้ามกับls -l, duจะแสดงขนาดจริงครอบครองของดิสก์:
$ du testfile
4
(ที่จริงแล้วduแสดงขนาดเป็นหน่วย 1kiB ดังนั้นนี่คือขนาด 4 × 1024 ไบต์ = 4096 ไบต์ = 4 kiB ซึ่งเป็นขนาดบล็อกของระบบไฟล์นี้)
หากต้องการlsแสดงสิ่งนี้คุณจะต้องใช้-sตัวเลือกแทน / เพิ่มเติมจาก-l:
$ ls -ls testfile
4 -rw-r--r-- 1 user user 2 Apr 28 22:08 testfile
คอลัมน์แรกคือขนาดที่จัดสรรอีกครั้งในหน่วยของ 1kiB สุดท้ายสามารถเปลี่ยนแปลงได้โดยการระบุ--block-sizeเช่น
$ ls -ls --block-size=1 testfile
4096 -rw-r--r-- 1 aw aw 2 Apr 28 22:08 testfile