หากคุณเพิ่งเข้าสู่โลก Linux อาจสงสัยว่าจะ釋放พื้นที่ดิสก์อย่างไร ไม่ได้แค่แค่ uninstall โปรแกรมบางตัว นี่เป็นจริงโดยเฉพาะหากคุณมีไฟล์เยอะกระจายทั่ว filesystem แม้จะมีหลายวิธีในการ釋放พื้นที่ดิสก์ใน Linux อ่านต่อเพื่อเรียนรู้วิธีที่เร็วที่สุดหนึ่ง: การใช้ du และคำสั่งเทอร์มินัลพื้นฐาน
du คืออะไร?
du เป็นคำสั่งมาตรฐานใน Linux ที่แสดงข้อมูล disk usage อย่างรวดเร็ว ชื่อคำสั่งย่อมาจาก "disk usage" แม้จะดูพื้นฐาน du มี options และการใช้งานมากมาย ทำให้เป็นเครื่องมือมีค่าสำหรับทั้งมือใหม่และ advanced Linux users
เริ่มใช้ du ยังไง?
อาจสงสัยว่าจะเริ่มใช้ du ยังไง วิธีง่ายที่สุดคือใช้คำสั่งเพียงตัวเดียวโดยไม่มี options:
du
อย่างไรก็ตาม ข้อมูลนี้ไม่ได้ประโยชน์มากนัก เอาต์พุตที่ให้มานี้มักถูกโปรแกรมและสคริปต์อื่นใช้ แตเพื่อให้มีประโยชน์สำหรับผู้ใช้ทั่วไป ต้องเพิ่ม options บ้าง
หนึ่งใน options คือแปลงขนาด output ให้อ่านได้ เพื่อทำเช่นนั้น ต้องเพิ่มฟลาก -h หรือ --human-readable
du -h
ขนาดไฟล์ด้านซ้ายอ่านง่ายขึ้นมาก แต่ยังมีอะไรเยอะให้ sort โชคดีที่มี options อื่นทำให้ง่ายขึ้น
ฟลาก -s จะ summarize disk usage ของไดเรกทอรีที่ให้ มักรวมกับ -h เพื่อให้ summary เรียบง่ายและอ่านง่าย
du -hs
ขึ้นอยู่กับไดเรกทอรีที่ตรวจสอบด้วย du อาจต้อง elevate privileges ด้วย sudo หรือคล้ายกัน เช่น ตอนอยากดูว่า root directory ใช้พื้นที่เท่าไหร่
แม้จะมี options อื่นที่มีประโยชน์มากกับ du แต -h และ -s คือฟลากเดียวที่เราต้องการเพื่อทำความสะอาดพื้นที่ดิสก์
วิธี釋放พื้นที่ดิสก์ Linux ด้วย du
ตอนนี้คุณรู้จัก du แล้ว สามารถนำไปใช้เมื่อ釋放พื้นที่ดิสก์บนคอมพิวเตอร์
วิธีเร็วที่สุดคือหาก่อนว่าอะไรใช้พื้นที่มากที่สุด ทำได้โดยให้ du สแกนระบบทั้งหมด โดยเพิ่ม asterisk ท้าย directory path asterisk ทำงานเป็น wildcard บอกคำสั่งให้ดูทุกอย่างในไดเรกทอรี
sudo du -hs /*
จะแสดงว่าไดเรกทอรีไหนใน filesystem ใช้พื้นที่มากที่สุด จากนั้นใช้คำสั่งเดิมในแต่ละไดเรกทอรีเพื่อหาว่า sub-directories และไฟล์ไหนใช้พื้นที่มาก
ในหลายกรณี คุณจะค้นหา home directory เพราะนี่คือที่เก็บไฟล์ส่วนตัว ทำได้โดยค้นหา ~/ ซึ่งเป็น shorthand สำหรับ home directory
du -hs ~/*
ทำซ้ำคำสั่งเหล่านี้เท่าที่ต้องการเพื่อ narrow down ว่าไดเรกทอรีไหนใช้พื้นที่มาก
ตัวอย่าง หากมีไดเรกทอรีชื่อ "Storage" ใน home folder ใช้พื้นที่มาก ใช้ du หาว่าไฟล์ไหนใหญ่ที่สุด
du -hs ~/Storage/*
จากนี้ ลบไฟล์ที่ไม่ต้องการด้วยคำสั่ง rm
rm -rf ~/Storage/big-file
ทำซ้ำสำหรับไฟล์อื่นๆ ที่ไม่ต้องการบนดิสก์ เพื่อ釋放พื้นที่จัดเก็บที่ต้องการ
คำถามที่พบบ่อย
1. มีวิธี sort ตามขนาดไฟล์ไหม?
ได้ สามารถ pipe output จาก du เข้า sort เพื่อ sort ตามขนาดไฟล์
du -hs ~/* | sort -hr
2. ดูว่ามีพื้นที่ดิสก์ว่างเท่าไหร่ ยังไง?
ใช้ df คำสั่งที่ต่างออกไป ใช้งานง่ายมาก สำหรับดู free disk space:
df -h
3. ควรใช้ du ลบโปรแกรมจากคอมพิวเตอร์ไหม?
ไม่ วิธีนี้ใช้ได้เฉพาะไฟล์ที่คุณ save เอง หากอยากลบโปรแกรม ควรใช้ package manager หรือ software center ของดิสทริบิวชัน
สรุป
เห็นได้ชัดว่า 釋放พื้นที่ดิสก์ใน Linux ด้วยบรรทัดคำสั่งง่ายมาก เมื่อคุณคล่องกับ du และ options ทั้งหมด จะพบว่ามันเร็วและง่ายกว่าวิธีอื่นส่วนใหญ่
แต่นี่แค่ปลาย айсเบิร์ก ของคำสั่ง อ่านต่อเพื่อดูว่าคำสั่งไหนใช้ค้นหาไฟล์ใน Linux