บางครั้งฉันเห็นคำสั่งต่อไปนี้:
find . -name * -exec ls -a {} \;
ฉันถูกขอให้ดำเนินการนี้
ที่{} \;นี่หมายความว่าอย่างไร
-name *เลวร้ายยิ่งกว่าซ้ำซ้อน เนื่องจาก*unquote เชลล์จะขยายไปยังรายการชื่อไฟล์ในโฟลเดอร์ปัจจุบันโดยมีการเว้นวรรคที่ไม่ถูกต้องนำไปสู่ผลลัพธ์ที่ไม่คาดคิดหรือข้อความแสดงข้อผิดพลาด ในฐานะที่เป็นจุดพิเศษfindมีฟังก์ชั่นมากมายโดยหนึ่งในนั้นคือรายการไฟล์ -execหลีกเลี่ยงการนี้ต้องใช้ เช่นคุณสามารถใช้หรือfind . -print find . -lsสุดท้ายมีสองวิธีที่จะหลบหนีกึ่งลำไส้ใหญ่: ทั้งที่คุณทำกับเครื่องหมาย, หรือโดยการอ้าง:\; ';'ใช้สิ่งที่คุณรู้สึกสะดวกสบายมากขึ้นด้วย

-name *ซ้ำซ้อน