Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

จัดเรียงไดเรกทอรี Linux ตามขนาดจริง: คู่มือขั้นตอน

ตัวจัดการไฟล์ Linux จัดการโฟลเดอร์คล้าย File Explorer (Windows) หรือ Finder (macOS) การจัดเรียงตามขนาดไม่ได้ทำงาน nhưที่คาดหวัง สามารถจัดเรียงตามจำนวนซับไดเรกทอรีหรือไฟล์ได้ แต่ขนาดจริงบนดิสก์มักไม่ทำงาน ต้องใช้เครื่องมือเพิ่มเติม

โชคดีที่มีเทคนิคหลายอย่างหาขนาดจริงของไดเรกทอรีได้ ในระบบไฟล์ โฟลเดอร์และไดเรกทอรีคือสิ่งเดียวกัน เทคนิคเหล่านี้ใช้ได้ไม่ว่าจะเรียกว่าอะไร ใช้คำว่า "ไดเรกทอรี" เพื่อความสอดคล้อง

วิธีที่ 1: ใช้ Disk Usage Analyzer (Baobab)

ผู้ใช้ Ubuntu, Debian, Linux Mint ติดตั้งได้ด้วย sudo apt-get install baobab ผู้ใช้ Fedora, Red Hat ใช้ sudo yum install baobab (อาจต้องติดตั้ง dependencies เพิ่มถ้าใช้ KDE/LXQT)

หลังติดตั้งแล้ว รัน baobab จากเทอร์มินัล หรือค้นหา "Disk Usage Analyzer" ในเมนูแอปพลิเคชัน (อยู่ใน System Tools) เมื่อเปิดจะให้เลือก filesystem ให้เลือกอุปกรณ์ที่มีไดเรกทอรีที่ต้องการ รอสักครู่โปรแกรมจะสแกนโครงสร้างไดเรกทอรี แล้วแสดงรายการไดเรกทอรีระดับบนสุด

คลิกปุ่ม Size เพื่อจัดเรียงจากใหญ่ไปเล็ก (ค่าเริ่มต้นคือเล็กไปใหญ่) คลิกลูกศรข้างชื่อไดเรกทอรีเพื่อขยายและจัดเรียงซับไดเรกทอรีภายใน คลิกหัวข้อ Contents จะจัดเรียงตามจำนวนไอเท็ม (เหมือนไฟล์เมนเจอร์ทั่วไป) เปรียบเทียบขนาดจริงกับจำนวนไฟล์ได้

วิธีที่ 2: ใช้คำสั่ง du แบบคลาสสิก

คำสั่ง du (disk usage) ใช้ได้จากเทอร์มินัลทุกตัว ไม่มีอาร์กิวเมนต์จะสแกนแบบ recursive ทั้งต้นไม้ หากต้องการจัดเรียงไดเรกทอรีภายใต้ไดเรกทอรีเฉพาะตามขนาด ใช้:

du –si –max-depth=1 nameOfDirectory | sort -h

แทนที่ nameOfDirectory ด้วยไดเรกทอรีที่ต้องการ ตัวอย่าง จัดเรียงไดเรกทอรีภายใต้ /lib:

du –si –max-depth=1 /lib | sort -h

ค่า –max-depth= กำหนดความลึกการค้นหา (1 = เพียงระดับล่างตรงๆ) อาร์กิวเมนต์ –si ใช้หน่วย SI (1 KB = 1,000 bytes) เหมาะสำหรับมาจาก macOS หรือคุ้นเคยกับขนาดฮาร์ดแวร์ หากชอบหน่วยไบนารี (1 KB = 1,024 bytes) ใช้ -h แทน:

du -h –max-depth=1 /lib | sort -h

หากผลลัพธ์เยอะเกินหน้าจอ ให้เพิ่ม | less หรือ | more ท้ายคำสั่ง หรือเลื่อนด้วย scrollbar/trackpad ในเทอร์มินัลสมัยใหม่

หากใช้บ่อยอยากได้เวอร์ชัน ncurses ติดตั้ง ncdu:

  • Debian/Ubuntu/Mint: sudo apt-get install ncdu
  • Fedora/Red Hat: sudo yum install ncdu (หรือ su - แล้ว yum install ncdu)

รัน ncdu หรือ ncdu /lib จะคำนวณไอเท็ม แล้วแสดงไดเรกทอรีเรียงตามขนาดจริง ใช้ปุ่มลูกศรนำทาง กด S เพื่อสลับการจัดเรียงขนาด