ฉันใช้คำสั่งต่อไปนี้เพื่อล้างไดเรกทอรีของไฟล์และไดเรกทอรีที่มีอายุมากกว่า 30 วันและย้ายไปยังไดเรกทอรีเก็บถาวรซึ่งฉันสามารถลบได้หลังจากสองสามสัปดาห์หากไม่มีใครขอไฟล์คืน ไดเรกทอรีเป้าหมายมีไดเรกทอรีย่อยตามชื่อผู้ใช้ดังนั้นไดเรกทอรีจะเก็บถาวร
นี่คือคำสั่งที่ฉันใช้:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
ผมแนะนำรุ่นล่าสุดนี้จะตอบคำถามเกี่ยวกับการขอให้อูบุนตูผู้ใช้อื่นแก้ไขรหัสเพื่อเปลี่ยนจุดสิ้นสุดของบรรทัด\;
สำหรับ+
เป็นมันเร็วขึ้น (และอื่น ๆ ถูกต้องหรือไม่) ดูที่นี่
อย่างไรก็ตามการใช้ +
วิธีนี้ใช้ได้ถ้า-exec
คำสั่งนั้นls -lh
ไม่ใช่ในคำสั่งจริงที่ฉันใช้ ถ้าฉันลองด้วย+
ฉันได้รับข้อความแสดงข้อผิดพลาด:
find: missing argument to '-exec'
ฉันไม่เข้าใจว่าทำไมมันทำงานแบบนี้หรือคำสั่งที่ถูกต้องจะเป็นอย่างไร โปรดอย่าเพิ่งโพสต์การแก้ไขคำสั่งฉันต้องการเข้าใจมากกว่าเพียงแค่ทำตามคำแนะนำอย่างสุ่มสี่สุ่มห้า
+
ขัดแย้งหลายคำสั่งเดียวกัน แต่mv
ไม่สามารถรับมือกับที่!