สำหรับเครื่องเช่น macbook ของคุณคุณจะไม่พบความแตกต่างด้านประสิทธิภาพระหว่างสองคำสั่ง อย่างไรก็ตามหากคุณดูที่รุ่น -exec คุณสามารถเห็นความแตกต่างเล็กน้อย:
sudo find / -iname ".file-to-delete" -exec rm {} \;
ซึ่งหมายความว่าคุณจะพบไฟล์ทั้งหมดที่มีชื่อ ".file-to-delete" อย่างไรก็ตามการค้นหานี้อาจส่งคืนผลบวกปลอมที่ไม่พึงประสงค์ เมื่อทำอะไรกับ sudo คุณควรระวังให้มากขึ้น ข้อดีของการใช้ -exec rm {} คือคุณสามารถส่งอาร์กิวเมนต์ไปยัง rm ดังนี้:
sudo find / -iname "*~" -exec rm -i {} \;
ในตัวอย่างนี้ฉันต้องการลบไฟล์สำรองที่ emacs ทำ อย่างไรก็ตามตัวหนอนอาจอยู่ในไฟล์คลุมเครือบางอย่างที่ฉันไม่รู้และอาจมีความสำคัญ บวกฉันต้องการยืนยันการลบ ดังนั้นฉันจึงใส่ตัวเลือก '-i' ในคำสั่ง rm สิ่งนี้จะทำให้ฉันลบแบบโต้ตอบ
นอกจากนี้คุณสามารถปรับแต่งการใช้ rm เพื่อลบไดเรกทอรีรวมถึงไฟล์:
find /usr/local/share/ -iname "useless" -exec rm -r {} \;
กล่าวโดยย่อ -exec ให้คุณควบคุมคำสั่งจริงที่จะลบรายการที่พบได้อีกเล็กน้อย ข้อดีคือคุณใช้เครื่องมือหนึ่งเพื่อค้นหาไฟล์ซึ่งเป็นเครื่องมืออื่นที่จะลบออก นอกจากนี้ยูทิลิตี้ค้นหาทุกรุ่นยังมีตัวเลือก -delete ดังนั้นควรใช้เครื่องมือแต่ละอย่างเพื่อการทำงานที่เหมาะสม นี่คือปรัชญาของยูนิกซ์ - หนึ่งเครื่องมือหนึ่งงานใช้พวกมันร่วมกันเพื่อทำสิ่งที่คุณต้องทำ
-delete
สวิตช์ก่อนที่จะ-name
ลบทรีไฟล์ที่ระบุดังนั้นฉันเดาว่าต้องระวัง