อะไร+ใน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เป็นวิธีอื่น แต่มันก็เป็นแบบพกพาน้อยกว่า)