คำสั่งที่ใช้ลบไฟล์เก่าที่มีอายุเกิน x วัน - คำสั่งนั้นก็คือ:
DOS - มาดูที่ DOS หรือ CMD ของ Windows กันก่อน ตัวอย่างคือจะลบไฟล์ นามสกุล .log ที่อยู่ในโฟลเดอร์ C:\path_to_files
และ Subfolder ที่มีอายุเกิน 10 วัน
คำสั่ง:
C:\>cd c:\path_to_files
- ย้าย path ไปก่อน
forfiles /S /D -10 /M *.log /C "cmd /c del @file"
คำอธิบาย:
forfiles
เป็นการหาไฟล์ตามเงื่อนไข ในที่นี้คือ
- หาไฟล์ที่โฟลเดอร์ที่เราอยู่ (ค่า default)
/S
หาที่ Subfolder ด้วย/D -10
หาไฟล์ที่มีอายุเกิน 10 วัน/M *.log
macthing ชื่อไฟล์ *.log- สุดท้ายคือ
/C "cmd /c del @file"
ส่งชื่อไฟล์ที่หาเจอไปที่คำสั่งdel
เพื่อลบไฟล์นั่นเอง
เข้าใจแล้วนะ - แต่ถ้ายังอยากอ่านเพิ่มเติมนะเหรอ? ที่นี่เลย FORFILES.exe หรือ forfiles /?
Linux - คราวนี้มาดูบน Linux บ้าง
คำสั่ง:
find /path_to_files -name "*.log" -mtime +10 -exec rm {} \;
คำอธิบาย:
find
ใช้คำสั่งนี้ในการหาไฟล์
- ระบุ
path_to_files
-name "*.log"
หาชื่อไฟล์ตามที่บอก-mtime +10
ไฟล์ที่ถูก modified นานกว่า 10 วัน (เก่าเกิน 10x24 ชม.)- ส่วนสุดท้าย
-exec rm {} \;
ส่งไฟล์ที่หามาได้ไปให้คำสั่งrm
ก็คือลบไฟล์นั่นเอง
รายละเอียดเพิ่มเติมดู man find | more
เพื่อความรอบรู้ และ เพื่อความปลอดภัยทั้งใน Linux และบน DOS แนะนำว่าให้เราลองหาไฟล์ดูก่อน หาดูก่อนให้แน่ใจว่าเจออะไร อย่าเพิ่งรีบสั่งต่อให้ลบอะไรไป และนั่นก็คือเปลี่ยนกับตัดคำสั่งออกให้เป็นตามนี้ก่อน
forfiles /S /D -10 /M *.log /C "cmd /c echo @file"
(DOS)
find /path_to_files -name "*.log" -mtime +10
(Linux)