Belki yaşlanıyorum ama gitmeliyim. ve .. herhangi bir komut tarafından ihmal edilmemeli? AFAIK bunlar dosya sistemi nedeniyle var ve başka bir amaca hizmet etmiyor.
Bu hiçbir anlam ifade etmiyor, sadece isimleri özellikle beslediğin için .
ve ..
senin tarafından boğulmak chown <...> .*
. Böyle bir durumda neden chown
yapmak istediğini yapmadığını mı sanıyorsun?
İsimler, chown'a verildi, çünkü kabuk, verdiğiniz shell glob genişleme kriterlerine dayanarak genişledi; .
ve ..
geçerli dizindeki diğer tüm nokta dizinleriyle birlikte. Söylediğinden beri chown
özyinelemeli çalışmak için, bu dizinlere ve altlarında bir şey içine indi. Bu "içine düşmüş" anlamına gelir ..
ve sonra oradan çalışmaya devam etti.
Bunu yaparak kendiniz deneyebilirsiniz echo .*
Chown'un komut satırına girilen isimleri görmek için. Bunu çıktısıyla karşılaştırın. echo *
ile shopt dotglob
sırasıyla açık ve kapalı shopt -s dotglob
açmak için shopt -u dotglob
kapatmak). kullanım ls
ziyade echo
özyinelemenin ilk seviyesini görmek için.
Mükemmel geçerli sebepler var. hatta çalıştırmak için chown -R
ikisinde de .
veya ..
. En açık olanı, dosyalar ve tek bir dizindeki tüm dosyalar hakkında yanlış mülkiyet bilgisine sahip bir arşivi çıkarmak gibi görünüyor; böyle bir durumda, chown -R abc:xyz .
Sıkıştırılmamış dizinin içinden, mülkiyeti sisteminizde makul bir şeye sıfırlamak için yapılacak mükemmel bir şey.
Kabuğunuzun genişlememesini istiyorsanız .*
içine .
ve ..
o zaman kendi kabuğunuz için doğru kurulduğundan emin olmanız gerekir. Örneğin, GNU bash 4.2.37 (1) 'den tekrar alıntı yapmak (bu yazı sırasında Debian Wheezy'de geçerli olan Debian, bash
paket sürümü 4.2+dfsg-0.1+deb7u3
amd64 mimarisinde) man page:
GLOBIGNORE
Yol adı genişletme tarafından göz ardı edilecek dosya adları kümesini tanımlayan iki nokta üst üste ayrılmış bir kalıp listesi. Bir yol adı genişletme modeliyle eşleşen bir dosya adı da GLOBIGNORE'daki modellerden biriyle eşleşirse, eşleşme listesinden çıkarılır.
Unix felsefesinin bir kısmının "kullanıcının ne yaptığını bildiğine güvenmesi" olduğunu unutmayın.