ฉันวิ่งเข้าไปในปัญหาในการใช้find
ด้วย-delete
เนื่องจากพฤติกรรมของเจตนาfind
(คือปฏิเสธที่จะลบถ้าเส้นทางเริ่มต้นด้วย ./ ซึ่งพวกเขาทำในกรณีของฉัน) ตามที่ระบุไว้ในหน้าคนที่:
-delete
ลบไฟล์และ / หรือไดเรกทอรีที่พบ ผลตอบแทนที่แท้จริงเสมอ สิ่งนี้เรียกใช้จากไดเร็กทอรีการทำงานปัจจุบันเมื่อค้นหา recurses ลงต้นไม้ จะไม่พยายามลบชื่อไฟล์ที่มีอักขระ "/" ในชื่อพา ธ ที่สัมพันธ์กับ "." เพื่อเหตุผลด้านความปลอดภัย
การประมวลผลการสำรวจเส้นทางแรกลึกโดยนัยนี้ตัวเลือกนี้
symlink ต่อไปนี้เข้ากันไม่ได้กับตัวเลือกนี้
แต่ฉันสามารถทำได้
find . -type d -name 'received_*_output' -exec rm -r {} +
สำหรับกรณีของคุณดูเหมือนว่าการอ้างอิง glob (เครื่องหมายดอกจัน *) เป็นวิธีแก้ปัญหา แต่ฉันต้องการให้คำตอบในกรณีที่คนอื่นมีปัญหาคล้ายกัน
หมายเหตุ: ก่อนหน้านี้คำตอบของฉันคือทำดังต่อไปนี้ แต่ @Wildcard ชี้ให้เห็นข้อบกพร่องด้านความปลอดภัยในการทำเช่นนั้นในความคิดเห็น
find . -type d -name 'received_*_output' | xargs rm -r
find . -type d -name .Apple*
ไปทำงานได้ - มันแสดงรายการโฟลเดอร์ทั้งหมด อย่างไรก็ตามมันล้มเหลวเมื่อฉันเพิ่ม-delete
ในตอนท้าย มันเพิ่งกลับมาพร้อมกับสรุปการใช้งาน มันทำงานบน BusyBox v1.1.1 นั่นสร้างความแตกต่างหรือไม่?