การประมวลผลผลลัพธ์เป็นกลุ่ม
เพื่อประสิทธิภาพที่เพิ่มขึ้นหลายคนใช้xargsเพื่อประมวลผลผลลัพธ์เป็นจำนวนมาก แต่มันอันตรายมาก เนื่องจากการที่มีวิธีการอื่นที่นำมาfindใช้ในการดำเนินการผลลัพธ์จำนวนมาก
โปรดทราบว่าวิธีนี้อาจมาพร้อมกับคำเตือนบางอย่างเช่นข้อกำหนดใน POSIX- findเพื่อให้ได้{}ที่ส่วนท้ายของคำสั่ง
export -f dosomething
find . -exec bash -c 'for f; do dosomething "$f"; done' _ {} +
findจะส่งผ่านผลลัพธ์จำนวนมากเป็นอาร์กิวเมนต์ไปยังการเรียกใช้ครั้งเดียวbashและfor-loop วนซ้ำผ่านการขัดแย้งเหล่านั้นการเรียกใช้ฟังก์ชันdosomethingในแต่ละรายการนั้น
วิธีการแก้ปัญหาข้างต้นเริ่มขัดแย้งที่$1ซึ่งเป็นสาเหตุที่มี_(ซึ่งหมายถึง$0)
การประมวลผลผลลัพธ์หนึ่งต่อหนึ่ง
ในทำนองเดียวกันฉันคิดว่าคำตอบที่ได้รับการยอมรับควรได้รับการแก้ไขให้เป็น
export -f dosomething
find . -exec bash -c 'dosomething "$1"' _ {} \;
สิ่งนี้ไม่เพียง แต่มีสติมากขึ้นเท่านั้นเพราะข้อโต้แย้งควรเริ่มต้นเสมอ$1แต่การใช้$0อาจทำให้เกิดพฤติกรรมที่ไม่คาดคิดได้หากชื่อไฟล์ที่ส่งคืนโดยfindมีความหมายพิเศษต่อเชลล์
               
              
$0โดยวิธีการที่คุณสามารถใส่เครื่องมือจัดฟันด้านในคำพูดแทนการใช้