ฉันต้องการลบไฟล์ที่มีขนาดมากกว่า 2MB ภายในโฟลเดอร์เฉพาะ ดังนั้นฉันจึงวิ่ง:
find . -size +2M
และฉันได้รายการไฟล์สองไฟล์
./a/b/c/file1
./a/f/g/file2
ดังนั้นฉันจึงเรียกใช้:
find . -size +2M -exec rm ;
และฉันได้รับข้อความแสดงข้อผิดพลาด Find: missing argument to -exec
ฉันตรวจสอบไวยากรณ์ใน man page และมันบอกว่า -exec command ;
ดังนั้นฉันลองแทน
find . -size +2M -exec rm {} +
และมันใช้งานได้ ผมเข้าใจว่า {} ให้มันรันคำสั่งชอบแทนrm file1 file2
rm file1; rm file2;
เหตุใดคนแรกจึงไม่ทำงาน
ตอบ:
ฉันเดาว่าฉันแค่ต้อง RTFM สองสามครั้งในที่สุดก็เข้าใจสิ่งที่มันกำลังพูด แม้ว่าตัวอย่างแรกจะไม่แสดง {} การจัดฟันจำเป็นต้องมีในทุกกรณี จากนั้นเพิ่ม \; หรือ + ขึ้นอยู่กับวิธีที่ต้องการ อย่าเพิ่งอ่านหัวเรื่อง อ่านคำอธิบายเช่นกัน เข้าใจแล้ว