อะไร+
ในfind /path/ -exec command '{}' +
สิ่งที่ต้องทำ? ตรงข้ามกับfind /path/ -exec command '{}' \;
อะไร+
ในfind /path/ -exec command '{}' +
สิ่งที่ต้องทำ? ตรงข้ามกับfind /path/ -exec command '{}' \;
คำตอบ:
เครื่องหมาย '+' สร้างบรรทัดคำสั่งหนึ่งบรรทัดใหญ่จากไฟล์ที่พบทั้งหมดเพื่อลดจำนวนคำสั่งที่จะเรียกใช้
ในกรณีที่คำสั่ง find พบไฟล์สี่ไฟล์
find . -type f -exec command '{}' \;
จะผลิต
command file1
command file2
command file3
command file4
ในทางกลับกัน
find . -type f -exec command '{}' \+
ผลิต
command file1 file2 file3 file4
จากหน้าคน:
คำสั่ง -exec {} +
ตัวแปรของแอ็คชัน -exec นี้รันคำสั่งที่ระบุบนไฟล์ที่เลือก แต่บรรทัดคำสั่งถูกสร้างโดยการต่อท้ายชื่อไฟล์ที่เลือกแต่ละชื่อที่ท้าย จำนวนการร้องขอคำสั่งทั้งหมดจะน้อยกว่าจำนวนไฟล์ที่ตรงกัน บรรทัดคำสั่งสร้างขึ้นในลักษณะเดียวกับที่ xargs สร้างบรรทัดคำสั่ง อนุญาตเพียงหนึ่งอินสแตนซ์ของ `{} 'ภายในคำสั่ง คำสั่งจะถูกดำเนินการในไดเรกทอรีเริ่มต้น
find
ให้ฉันกึ่ง
xargs
,-exec … {} +
ไม่เหมือนกันเป็น-print | xargs …
แต่ไม่มีปัญหา quoting (-print0 | xargs -0
เป็นวิธีอื่น แต่มันก็เป็นแบบพกพาน้อยกว่า)