Aşağı kaydırın …
Dosya adları .
ve null değil ayarlandığında ..
her zaman yoksayılır GLOBIGNORE
.
Çoğu zaman, dizin içindeki dosyaları temsil etmedikleri için joker karakter eşleşmeleri eklemek .
ve ..
joker karakter eşleşmeleri olarak arzu edilmez - dizin gezinme işlemlerini yapmak için hack'lerdir. Aslında, nokta dosyalarının kökeni komutun ilk sürümünde bir hatadırls
. Yazar listeden hariç tutmayı .
ve ..
listeden hariç tutmayı amaçlıyordu ancak ile başlayan tüm dosyaları yanlışlıkla hariç tuttu .
. Böylece nokta dosyaları gizlendi ls
. Kabuklar, nokta dosyaları gibi gizleyerek bunları izledi ls
. Ancak bunun tekrar yapılması bir hackti: ile başlayan dosyalar .
sadece nokta kalıpta açıkça eşleşmezse hariç tutulur. Böylece desen ve .*
içerir ..
..
Mevcut komut dosyalarıyla uyumluluğu korumak için, modern kabuklar hala içerir .
ve ..
(zsh hariç, bu konuda diğerleri gibi daha akılcı ama geriye dönük uyumlu olmayan bir davranışa sahiptir). Ancak, ayarlarsanız GLOBIGNORE
, geriye dönük uyumlulukla ilgilenmediğinizi gösteren bash'a özgü bir özellik kullanırsınız. Desen eşleştirme dışlamak değiştirir Yani .
ve ..
tüm desen maçlarından.
Ayar GLOBIGNORE=.
Dahil Olmayanlar her neyse otomatik dışlanan bir dosya GLOBIGNORE
hazır durumda eşdeğerdir, böylece shopt -s dotglob
o hariç .
ve ..
ayrıca tüm desenleri dışında tutulur.
GLOBIGNORE
sadece göz ardı.
ve..
eğik çizgi desenleri ayarını fark ettim ve GLOBIGNORE dosya adlarını değil dosya yollarını filtreler. neGLOBIGNORE=.; echo .*
içermez , ama (veya ) içermez ! Göz ardı etmek ve ihtiyacınız gibi tüm Neználkovo gelen, görünüşe ve ..
..
GLOBIGNORE=.; echo ./.*
echo /bin/.*
.
..
shopt -s extglob
GLOBIGNORE='?(*/)@(.|..)'