How to delete files and folders older than x days

[b][color="#FF0000"]ข้อความระวัง โปรดใช้ อย่างระมัดระวัง อย่างที่สุด

โปรดระบุด้วย Full path เพื่อป้องกันความผิดพลาด[/color][/b]

ทำการค้นหา และแสดง โฟลเดอร์ หรือ ไฟล์ ที่อยู่ใน /path/ ทั้งหมด ที่เก่ากว่า 20 วัน

วิธีการบันทึก list to file

find /path/ -mtime +20 -exec echo {} ; > fileName

ทำการค้นหาโฟลเดอร์ หรือ ไฟล์ ที่อยู่ใน /path/ ทั้งหมด เมื่อเก่ากว่า 20 วันให้ทำการลบออก

#Delete all files older x days

find /path/ -type f -mtime +20 -exec rm {} ;

#Delete all folders older x days

find /path/ -type d -mtime +20 -exec rm -r {} ;

#Delete all file and folder older x days

find /path/ -mtime +20 -exec rm -rf {} ;

ขอบคุณครับ

หาไฟล์ยังไม่เท่าไหร่

หา folder นี่ต้องระวังเป็นพิเศษ เพราะมันมีอะไรอยู่ใน folder ย่อยๆได้อีกเยอะ

ตอบผิด

+1 ขอบคุณครับ

Redhat/CentOS บางรุ่น ถ้าไม่พบไฟล์ที่หา มันจะ list ทั้ง current directory ออกมาเลย ระวังให้มากครับ

list ไปใว้ใน file มาเปิดดูก่อน แล้ว for ดึงข้อมูลใน file มาลบครับ กันพลาด

หรือ

เพิ่ม

-mindepth ??

-maxdepth ??

ใน find ได้ครับ เป็นการกำหนดความลึกครับ