สคริปต์เพื่อดำเนินการผ่าน cronjob ที่ลบไฟล์ทั้งหมดในหลายไดเรกทอรี


3

ฉันหวังว่าคุณจะสามารถยืมความเชี่ยวชาญของคุณมาให้ฉันได้

ฉันใช้โฮสติ้งที่ใช้ร่วมกันบน Hostgator และต้องการทราบวิธีการลบไฟล์. gz ทั้งหมดในหลายไดเรกทอรีทุกชั่วโมง ฉันคิดว่าฉันมีคำสั่ง cronjob ที่ถูกต้องในการทำเช่นนี้สำหรับไดเรกทอรีเดียว:

/usr/bin/find /path/to/directory/ -type f -name '*.gz' -exec rm {} \;

ถูกต้องไหม

ถ้าเป็นเช่นนั้นฉันจะทำสิ่งเดียวกันได้อย่างไร แต่มีหลายไดเรกทอรี (เช่นหลายสิบ) ฉันเดาว่าฉันสามารถรันหนึ่งสคริปต์แทนที่จะเป็น cronjob แต่ละอัน แต่ฉันใหม่สำหรับสิ่งนี้ สคริปต์ดังกล่าวมีลักษณะอย่างไร และฉันจะรันสคริปต์ผ่าน cronjob ได้อย่างไร

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือใด ๆ !


ถ้ารุ่นของคุณfindสนับสนุนคุณอาจต้องการที่จะใช้-deleteแทน-exec rm {} \;หรืออย่างน้อยแทน+ \;
Dennis Williamson

อีกทางเลือกหนึ่งคือ/usr/bin/find /path/to/directory/ -type f -name '*.gz' -print0 | xargs -0 rmหลีกเลี่ยงการเรียกใช้ rm ซ้ำไปซ้ำมาสำหรับไฟล์แต่ละไฟล์
hlovdal

คำตอบ:


1

findผ่านไปหลายเส้นทาง

find /dir1 /dir2 ...

ขอบคุณ! และนั่นจะใช้ได้กับไดเรกทอรีจำนวนมากหรือไม่
เกลน

ควรถึงแม้ว่าฉันจะไม่ทราบจำนวนสูงสุดที่แน่นอน
Ignacio Vazquez-Abrams
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.