เลื่อนลง ...
ชื่อไฟล์.และ..จะถูกละเว้นเสมอเมื่อGLOBIGNOREตั้งค่าและไม่ว่าง
ส่วนใหญ่แล้วจะไม่ต้องการรวม.และ..ตรงกับสัญลักษณ์แทนเนื่องจากไม่ได้แสดงไฟล์ในไดเรกทอรี - พวกเขากำลังแฮ็กเพื่อให้การนำทางไดเรกทอรีทำงาน ความจริงแล้วที่มาของไฟล์ดอทนั้นเป็นจุดบกพร่องในlsคำสั่งเวอร์ชันแรกๆ ผู้เขียนตั้งใจจะแยก.และ..ออกจากรายชื่อ แต่ไม่รวมไฟล์ทั้งหมดที่ขึ้นต้นด้วยโดย.ไม่ตั้งใจ ดังนั้นไฟล์ dot lsกลายเป็นที่ซ่อนอยู่จาก lsเปลือกหอยตามเหมาะสมโดยการซ่อนไฟล์จุดเช่น อย่างไรก็ตามวิธีการทำเช่นนี้เป็นการแฮ็คอีกครั้ง: ไฟล์ที่ขึ้นต้นด้วย.จะถูกแยกออกเฉพาะในกรณีที่จุดไม่ได้ถูกจับคู่อย่างชัดเจนในรูปแบบ ดังนั้นรูปแบบ.*รวมและ...
เพื่อรักษาความเข้ากันได้กับสคริปต์ที่มีอยู่เปลือกหอยที่ทันสมัยยังคงรวม.และ..(ยกเว้น zsh ซึ่งในปัญหานี้เหมือนคนอื่น ๆ หลายคนมี saner แต่พฤติกรรมที่เข้ากันได้ย้อนหลัง) อย่างไรก็ตามหากคุณตั้งค่าGLOBIGNOREคุณกำลังใช้คุณสมบัติเฉพาะของ bash ซึ่งแสดงว่าคุณไม่สนใจความเข้ากันได้แบบย้อนหลัง ดังนั้นการจับคู่รูปแบบจึงเปลี่ยนเพื่อแยก.และ..ออกจากการจับคู่รูปแบบทั้งหมด
การตั้งค่าจะGLOBIGNORE=.แยกไฟล์ที่ถูกแยกออกโดยอัตโนมัติอย่างไรก็ตามเมื่อใดก็ตามที่GLOBIGNOREมีการตั้งค่าดังนั้นจึงมีค่าเท่ากับshopt -s dotglobยกเว้น.และ..นอกจากนั้นจะถูกแยกออกจากทุกรูปแบบ
GLOBIGNOREไม่สนใจ.และ..ในรูปแบบสแลชน้อยและ GLOBIGNORE กรองเส้นทางไฟล์ไม่ใช่ชื่อไฟล์GLOBIGNORE=.; echo .*จะไม่รวม.หรือ..แต่จะGLOBIGNORE=.; echo ./.*(หรือecho /bin/.*)! ที่จะไม่สนใจ.และ..จาก globs ทั้งหมดมันดูเหมือนว่าคุณต้องการและshopt -s extglobGLOBIGNORE='?(*/)@(.|..)'