ฉันเดาว่าคุณมีตัวอักษรตัวหนึ่งในไฟล์ที่มี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