เนื่องจาก Bash 4 (รวมถึง zsh) จึงมีการเพิ่มตัวเลือกแบบวงกลมใหม่ ( globstar
) ลงไปซึ่งถือว่ารูปแบบ**
แตกต่างกันเมื่อตั้งค่า
มันกำลังจับคู่รูปแบบไวด์การ์ดและส่งคืนไฟล์และชื่อไดเรกทอรีที่ตรงกันจากนั้นโดยแทนที่รูปแบบไวด์การ์ดในคำสั่งด้วยรายการที่ตรงกัน
โดยปกติเมื่อคุณใช้**
มันจะทำงานคล้ายกับ*
แต่มันจะทำซ้ำไดเรกทอรีทั้งหมดซ้ำ (เช่นวนซ้ำ)
หากต้องการดูว่าเปิดใช้งานหรือไม่ให้ตรวจสอบโดยshopt globstar
(ในการใช้สคริปต์ใช้shopt -q globstar
)
ตัวอย่าง**.py
จะใช้ได้เฉพาะกับไดเรกทอรีปัจจุบันเนื่องจากไม่ส่งคืนรายการของไดเรกทอรีที่สามารถเรียกซ้ำได้ดังนั้นจึงเป็นเหตุผลที่คุณต้องใช้สัญลักษณ์ตัวแทนระดับไดเรกทอรีหลายรายการ**/*.py
เพื่อให้สามารถทำงานได้ลึกขึ้น
โปรดหาการทดสอบไวยากรณ์น้อยมากซึ่งฉันได้ทำการค้นหาไฟล์ทั้งหมดซ้ำ
nullglob