-พิมพ์0
บอก หา
เพื่อแสดงผลลัพธ์โดยคั่นด้วย null ไบต์ แทนที่จะเป็นอักขระขึ้นบรรทัดใหม่ตามปกติ สิ่งนี้จำเป็นหากชื่อไฟล์ (หรืออาจในอนาคต) มีอักขระขึ้นบรรทัดใหม่ด้วย
แล้วต้องบอกต่อ xargs
เพื่อคาดหวังข้อมูลที่คั่นด้วยค่า null ลงมาที่ท่อ - นั่นคือสิ่งที่ -0
สำหรับ. ดังนั้นจึงจำเป็นที่นี่เมื่อใช้ -พิมพ์0
บน LHS
ในขณะเดียวกัน {}
เป็นสตริงการแทนที่ - เมื่อคุณใช้ -ฉัน {}
, แต่ละ {}
ในคำสั่งต่อไปนี้จะถูกแทนที่ด้วยรายการอินพุต จำเป็นจริงๆ เฉพาะเมื่อคุณต้องการควบคุมตำแหน่งที่รายการปรากฏในบรรทัดคำสั่งต่อไปนี้ (และมีผลข้างเคียงจากการเรียกใช้การเรียกเพียงครั้งเดียวสำหรับแต่ละรายการ เทียบเท่ากับการเพิ่ม -L 1
). IMHO ไม่จำเป็นที่นี่ และทำให้โซลูชันไม่มีประสิทธิภาพเนื่องจากทำงาน rm
หนึ่งครั้งสำหรับแต่ละไฟล์ที่พบ แทนที่จะเป็นแบทช์
โปรดทราบว่า หา
มี -ผู้บริหาร
ตัวเลือกและก -ลบ
ตัวเลือกที่ทั้งสองหลีกเลี่ยงปัญหาการเขียน / อ่านข้อมูลที่คั่นด้วย:
หา . -type f -not -name '*gz' -exec rm -v {} +
หรือ
หา . -type f -not -name '*gz' -print -delete
(ที่ -พิมพ์
ที่นี่เพื่อให้การทำงานที่คล้ายกันเป็น -v
ตัวเลือกที่จะ rm
).