สามารถทำได้จากการfindใช้โดยตรง-exec:
find . -name "*.xml" -type f -exec xmllint --output '{}' --format '{}' \;
สิ่งที่ถูกส่งไปยัง-execจะถูกเรียกใช้หนึ่งครั้งต่อไฟล์ที่พบโดยพารามิเตอร์เทมเพลต{}จะถูกแทนที่ด้วยชื่อไฟล์ปัจจุบัน \;ในตอนท้ายของการค้นหาคำสั่งเพียงแค่สิ้นสุดบรรทัด
การใช้xargsไม่จำเป็นจริงๆในกรณีนี้เพราะเราจำเป็นต้องเรียกใช้xmllintหนึ่งครั้งต่อไฟล์เนื่องจากต้องระบุทั้งชื่ออินพุตและไฟล์เอาต์พุตในการโทรเดียวกัน
xargsจะต้องใช้ถ้าคำสั่งที่ถูกไพพ์ไปยังจาก find กำลังทำงานกับหลายไฟล์พร้อมกันและรายการนั้นยาว คุณไม่สามารถทำเช่นนั้นในกรณีนี้ตามที่คุณต้องการที่จะผ่านชื่อไฟล์เดียวกับตัวเลือกของ--output xmllintหากไม่มีxargsข้อผิดพลาด "รายการอาร์กิวเมนต์ยาวเกินไป" หากคุณกำลังประมวลผลไฟล์จำนวนมาก xargsยังรองรับไฟล์แทนที่สตริงด้วย-Iตัวเลือก:
find . -name "*.xml" -type f | xargs -I'{}' xmllint --output '{}' --format '{}'
จะทำเช่นเดียวกันกับfind -execคำสั่งด้านบน ถ้าใด ๆ ของโฟลเดอร์ของคุณมีตัวอักษรแปลกในพื้นที่เช่นคุณจะต้องใช้-0ตัวเลือกของและfind xargsแต่การใช้xargsที่มี-Iนัยตัวเลือก-L 1ซึ่งหมายถึงเฉพาะการประมวลผล 1 ไฟล์ในเวลาอยู่แล้วดังนั้นคุณอาจรวมทั้งโดยตรงใช้กับfind-exec