Gulir ke bawah ...
Nama file .dan ..selalu diabaikan ketika GLOBIGNOREdiatur dan bukan nol.
Sebagian besar waktu, itu tidak diinginkan untuk memasukkan .dan ..sebagai wildcard cocok, karena mereka tidak mewakili file di dalam direktori - mereka adalah peretasan untuk membuat navigasi berfungsi. Bahkan, asal file dot adalah bug di versi awalls perintah . Penulis bermaksud mengecualikan .dan ..dari daftar tetapi secara tidak sengaja mengecualikan semua file yang dimulai dengan .. Dengan demikian file dot menjadi tersembunyi ls. Kerang diikuti dengan menyembunyikan file dot suka ls. Namun cara ini dilakukan adalah hack sekali lagi: file yang dimulai dengan .hanya dikecualikan jika titik tidak cocok secara eksplisit dalam pola. Jadi polanya .*termasuk .dan ...
Untuk menjaga kompatibilitas dengan skrip yang ada, shell modern masih termasuk .dan ..(kecuali zsh, yang pada masalah ini seperti banyak yang lainnya memiliki perilaku yang lebih waras tetapi tidak kompatibel ke belakang). Namun, jika Anda mengatur GLOBIGNORE, Anda menggunakan fitur khusus bash, yang menunjukkan bahwa Anda tidak tertarik pada kompatibilitas mundur. Jadi perubahan pencocokan pola untuk mengecualikan .dan ..dari semua pencocokan pola.
Pengaturan GLOBIGNORE=.mengecualikan file yang dikecualikan secara otomatis kapan pun GLOBIGNOREdiatur, sehingga setara dengan shopt -s dotglobkecuali itu .dan ..selanjutnya dikecualikan dari semua pola.
GLOBIGNOREhanya mengabaikan.dan..dalam pola slash-less dan path file filter GLOBIGNORE bukan nama file.GLOBIGNORE=.; echo .*tidak akan memasukkan.juga.., tetapiGLOBIGNORE=.; echo ./.*(atauecho /bin/.*) akan! Untuk mengabaikan.dan..dari semua gumpalan, sepertinya Anda perlushopt -s extglobdanGLOBIGNORE='?(*/)@(.|..)'.