PlusMagi's Blog By Pitt Phunsanit Linux,macOS,Unix-like du: ดูหาพื้นที่ฮาร์ดดิสก์

du: ดูหาพื้นที่ฮาร์ดดิสก์

คำสั่ง du -sh /Users/common/Ollama/models/blobs) เป็นคำสั่งที่ดีมากและถูกใช้บ่อยที่สุดเวลาที่ต้องการเช็กว่า “โฟลเดอร์นี้กินพื้นที่บนเครื่องไปเท่าไหร่แล้ว?” (โดยเฉพาะโฟลเดอร์เก็บโมเดล AI ของ Ollama ที่ปกติจะใหญ่ระดับหลาย Gigabytes หรืออาจถึง Terabytes)

นี่คือบทความสรุปการใช้งานคำสั่ง du แบบเข้าใจง่าย เอาไว้เปิดดูเป็นคัมภีร์คู่ใจเวลาสู้รบกับปัญหา “ฮาร์ดดิสก์เต็ม” ครับ

เคยไหม? อยู่ดีๆ หน้าจอก็เตือนว่าพื้นที่จัดเก็บข้อมูลเต็ม ทั้งๆ ที่คิดว่าไม่ได้โหลดอะไรมาเยอะแยะ คำสั่ง du (ย่อมาจาก Disk Usage) คือเครื่องมือระดับสากลบน Linux และ macOS ที่เกิดมาเพื่อช่วยเราแกะรอยว่า “ไฟล์หรือโฟลเดอร์ไหนกำลังแอบกินพื้นที่เครื่องของเราอยู่”


ถอดรหัสคำสั่งยอดฮิต: du -sh คืออะไร?

เวลาคนส่วนใหญ่ใช้งาน du พวกเขามักจะไม่พิมพ์แค่ du โล่งๆ แต่จะตามด้วย Option พ่วงท้ายสามตัวนี้เสมอ เช่นคำสั่ง
du -sh /Users/common/Ollama/models/blobs
ถ้าเราแยกชิ้นส่วนออกมา มันทำงานอย่างนี้ครับ

  • du : สั่งให้ระบบคำนวณการใช้พื้นที่ของไฟล์และโฟลเดอร์
  • -s (Summary) : บอกให้สรุปยอดรวมของโฟลเดอร์นั้น ๆ มาเลย “บรรทัดเดียวจบ” ไม่ต้องลิสต์รายการไฟล์ย่อย ๆ ข้างในทั้งหมดออกมาให้รกหน้าจอ
  • -h (Human-readable) : แปลงตัวเลขหน่วย Byte ที่อ่านยาก ให้กลายเป็นหน่วยที่เราคุ้นเคยโดยอัตโนมัติ เช่น K (Kilobyte), M (Megabyte), G (Gigabyte) หรือ T (Terabyte)

💡 ผลลัพธ์ที่ได้ จะออกมาสั้นกระชับ เช่น 45G /Users/common/Ollama/models/blobs ทำให้เรารู้ทันทีว่าโฟลเดอร์เก็บโมเดลนี้กินพื้นที่ไป 45 GB!


ท่าไม้ตายอื่น ๆ ของ du ที่สายนั่งแกะโค้ด/ดูแลระบบต้องรู้

นอกเหนือจาก -sh แล้ว คำสั่ง du ยังมีสูตรผสมอื่น ๆ ที่ช่วยให้เราหาไฟล์ขยะได้เร็วขึ้นอีกครับ


🔎 ไล่ดูความใหญ่ของทุกโฟลเดอร์ในชั้นแรก (--max-depth)

ถ้าเราอยากรู้ว่าในโฟลเดอร์ปัจจุบัน มีโฟลเดอร์ย่อยไหนตัวอ้วนที่สุด แต่ไม่อยากให้มันมุดลึกลงไปจนลายตา ให้ใช้คำสั่งนี้
du -h --max-depth=1
(สำหรับบน macOS ให้ใช้ du -hd 1 แทน) ระบบจะแสดงขนาดของทุกโฟลเดอร์ที่อยู่ในชั้นนี้เท่านั้น ทำให้เราหา “ผู้ต้องสงสัย” ได้ง่ายขึ้น


📊 เรียงลำดับจากใหญ่ไปเล็ก (คู่หู sort)

หาด้วยตาอาจจะยาก จับมันเรียงลำดับซะเลยด้วยการส่งต่อข้อมูล (Pipe) ไปให้คำสั่ง sort
du -sh * | sort -rh

  • * คือเช็กทุกอย่างในโฟลเดอร์ปัจจุบัน
  • sort -rh คือสั่งให้เรียงลำดับจากมากไปน้อย โดยให้เข้าใจหน่วยมนุษย์ (Human-readable) ด้วย โฟลเดอร์ไหนใหญ่สุดจะเด้งขึ้นมาอยู่บนสุดทันที

🕒 อยากรู้ด้วยว่าโฟลเดอร์นั้นโดนแก้ไขล่าสุดเมื่อไหร่

du -sh --time /Users/common/Ollama/models/blobs

คำสั่งนี้จะแถมวันเวลาที่มีการอัปเดตไฟล์ล่าสุดมาให้ด้วย เหมาะมากกับการเช็กว่าโฟลเดอร์นี้เป็น Log เก่าที่ไม่ได้ใช้แล้ว หรือเป็นไฟล์ปัจจุบันที่กำลังทำงานอยู่


⚠️ ข้อควรระวัง (และข้อแตกต่างระหว่าง du กับ df)

มีหลายคนสับสนระหว่างคำสั่ง du กับ df (Disk Free)

  • df -h เอาไว้ดูภาพรวมของ “ฮาร์ดดิสก์ทั้งลูก” ว่าเหลือพื้นที่เท่าไหร่ (มองภาพกว้าง)
  • du -sh เอาไว้เจาะลึกเฉพาะ “โฟลเดอร์หรือไฟล์” ที่เราสงสัยเพื่อหาต้นตอ (มองภาพลึก)

Tip: ในบางครั้งถ้าเราใช้คำสั่ง du กับโฟลเดอร์ระบบ (System Files) แล้วเจอข้อความเตือน Permission denied ให้เติม sudo ไว้ข้างหน้าสุด เช่น sudo du -sh /var/log เพื่อขอสิทธิ์ผู้ดูแลระบบในการเข้าไปคำนวณพื้นที่ครับ


อ่านเพิ่มเติม