Score:1

ทำไม du -b และ du -k ถึงแตกต่างกันมาก

ธง kr
gyd

ฉันใช้ Ubuntu 16.04.5 LTS และเวอร์ชันของ du คือ 8.25 ตอนนี้ฉันมีคำถาม:

$ du -b /var/log/lastlog
69788251412 /var/log/lastlog

ขนาดตรงกับคำสั่ง ls -al ในขณะที่ฉันใช้ du -k ก็มีผลลัพธ์อื่น:

$ du -k /var/log/lastlog
80 /var/log/lastlog

ทั้งสองผลลัพธ์ไม่ตรงกัน ทำไม?

Score:1
ธง cl
A.B

/var/log/lastlog เป็นไฟล์ไบนารีที่ใช้ในโหมด "เข้าถึงโดยสุ่ม" แทนที่จะเป็นบันทึกต่อท้าย ดังนั้นจึงเป็นไปตามธรรมชาติ ไฟล์กระจัดกระจาย, เช่น ระบุไว้ในคู่มือนี้ (GNU/Linux):

บันทึก

ไฟล์ lastlog เป็นฐานข้อมูลที่มีข้อมูลในการเข้าสู่ระบบครั้งล่าสุด ของผู้ใช้แต่ละคน คุณไม่ควรหมุน มันเป็นไฟล์กระจัดกระจายดังนั้นมัน ขนาดบนดิสก์มักจะเล็กกว่าขนาดที่แสดงโดย "ls -l" (ซึ่งสามารถระบุไฟล์ขนาดใหญ่มากหากคุณมีผู้ใช้ใน passwd ที่มี UID สูง)คุณสามารถแสดงขนาดจริงด้วย "ls -s"

Sparse หมายถึงการใช้งานดิสก์จริงน้อยกว่าขนาดที่ปรากฏ

บน GNU/Linux, -ข ตัวเลือกสำหรับ ดู่ อธิบายว่า:

-ข, --ไบต์

เทียบเท่ากับ --apparent-ขนาด --block-size=1

นั่นคือ, -ข ปิดใช้งานการตรวจจับและจัดการไฟล์แบบกระจายอย่างชัดเจนโดยรวม --ขนาดชัดเจน.

เพื่อให้มีขนาดเป็นไบต์ตรงกัน -k (การใช้งานจริงบนดิสก์) ใช้แทน:

du --block-size=1 /var/log/lastlog

หรือให้มีขนาดที่ตรงกับ KiB -ข (ที่มีขนาดชัดเจน) ใช้แทน:

du --apparent-size -k /var/log/lastlog.du
kr flag
gyd
ขอบคุณสำหรับคำตอบของคุณ ช่วยได้มาก

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา