เช่นเดียวกับในคำตอบก่อนหน้า (+1 สำหรับทั้งคู่) เคล็ดลับคือการใช้เพ-type f
รดิเคต
โปรดทราบว่า-exec rm '{}'
คุณสามารถใช้เพรดิเคต-delete
แทนได้ แต่อย่าทำอย่างนั้น ด้วย-exec rm '{}'
คุณสามารถ (และควร) ทำก่อน-exec echo rm '{}'
เพื่อยืนยันว่านี่คือสิ่งที่คุณต้องการจริงๆ echo
หลังจากนั้นรันคำสั่งโดยไม่ต้อง
การใช้-delete
เร็วกว่า (ไม่มีการเพิ่มfork()
และexecve()
สำหรับแต่ละไฟล์) แต่สิ่งนี้มีความเสี่ยงเนื่องจากการ-delete
ทำงานเป็นเงื่อนไขดังนั้น:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
แต่ถ้าคุณแลกเปลี่ยนอาร์กิวเมนต์เท่านั้น:
# delete ALL files
find . -type f -name '*.tmp' -delete
หากคุณต้องการfind
และrm
ทำงานได้เร็วขึ้นสำหรับไฟล์จำนวนมากลองใช้find ... | xargs ... rm
สำนวน UNIX