Rain Wiki · Linux

การค้นหาไฟล์ขนาดใหญ่และไฟล์เก่าด้วย find

วิธีใช้คำสั่ง find เพื่อแสดงรายการไฟล์ขนาดใหญ่หรือไฟล์เก่าบน Linux ดูตัวอย่างไฟล์อย่างปลอดภัย และลบเฉพาะไฟล์ที่คุณตรวจสอบแล้วเท่านั้น

Linux · Rain Wiki

find เป็นคำสั่งมาตรฐานของ Linux ที่ใช้ค้นหาไฟล์ในโครงสร้างไดเรกทอรีตามเงื่อนไขต่างๆ เช่น ขนาด อายุ ชื่อ หรือประเภทไฟล์ คำสั่ง 'find / -xdev -type f -size +1G' จะแสดงรายการไฟล์ที่มีขนาดใหญ่กว่า 1 GB บนระบบไฟล์รูท ซึ่งมักเป็นวิธีที่เร็วที่สุดในการดูว่ามีอะไรที่ทำให้ดิสก์เต็มกะทันหัน

เงื่อนไขการทดสอบที่มีประโยชน์

-size +500M (ใหญ่กว่า 500 MiB), -mtime +30 (แก้ไขเมื่อมากกว่า 30 วันที่แล้ว), -name '*.log', -type f (เฉพาะไฟล์), -xdev (ไม่ข้ามไปยังระบบไฟล์อื่น)

การแสดงขนาดไฟล์

เพิ่ม '-exec ls -lh {} +' เพื่อดูขนาดไฟล์ หรือใช้ -printf ของ GNU find เช่น -printf '%s %p\n' แล้วจัดเรียงผลลัพธ์

การลบอย่างปลอดภัย

-delete จะลบทุกรายการที่ตรงกับเงื่อนไขทันที ให้รันคำสั่งเดิมโดยไม่ต้องใส่ -delete ก่อน อ่านรายการที่แสดง แล้วจึงเพิ่ม -delete เป็นตัวเลือกสุดท้าย

วิธีค้นหาไฟล์ที่มีขนาดใหญ่กว่า 1 GB

  1. รันคำสั่ง: sudo find / -xdev -type f -size +1G -exec ls -lh {} +
  2. ระบุโปรแกรมที่เป็นเจ้าของไฟล์แต่ละไฟล์ก่อนที่จะลบ
  3. สำหรับไฟล์บันทึกเก่า ให้ดูตัวอย่างก่อน: sudo find /var/log -type f -name '*.gz' -mtime +30
  4. จากนั้นค่อยลบ: sudo find /var/log -type f -name '*.gz' -mtime +30 -delete

ข้อควรระวัง

  • การวาง -delete ไว้หน้าเงื่อนไขการทดสอบจะลบทุกอย่างภายใต้พาธนั้น
  • ไฟล์ฐานข้อมูล ไฟล์ดิสก์เสมือน และไฟล์ swap มีขนาดใหญ่โดยเจตนา: ห้ามลบไฟล์เหล่านี้

แหล่งอ้างอิง

อัปเดตล่าสุด: 2026-10-08

บทความที่เกี่ยวข้อง