Nokta nokta (..) tam olarak nedir? Semboliklerle davranışları neden farklı?


15

Ben ..(çift nokta) doğasını anlamaya çalışıyorum . Nasıl eriştiğinize bağlı olarak farklı hedefleri gösteriyor gibi görünüyor.

Misal:-

    /outer/
        middle/
            inner/
        inner --> ./middle/inner/

Şimdi /outer/middle/inner/..yol açar /outer/middle/, ancak sembolik bağlantıdan erişirsem /outer/inner/..yol açar /outer/. Görünüşe göre burada iki farklı ..var.

Nedir ..tam olarak? sembolik bağlantı? sabit bağlantı? Yoksa dizine erişildiğinde yola bağlı olarak dinamik olarak mı oluşturuluyor? Ya da belki sembolik bağları anlamam yanlış.

Düzenle:

İlgili diğer gözlemler

    /outer/
        middle/
            file
            inner/
               f --> ./../file
        inner --> ./middle/inner/

Şimdi dosya üzerinden erişmeye çalışırsam /outer/inner/fçalışır. Ancak o zamandan beri /outer/inner/../filebir dosyaya işaret etmemelidir . dosya var /outer/middle/inner/... Bu yukarıdaki davranışla çelişiyor gibi görünüyor !?


Sembolik bağlantıların kısayol olmadığını unutmayın; daha çok işaretçiler gibidirler.
wizzwizz4

Yanıtlar:


35

..Bir olan sabit bağlantı dizin girdisinin parçası olarak oluşturulan ana dizine.

ls -ailBu dizinlerin her birinde sorun yaşıyorsanız, aşağıdaki girdilerin hepsinin aynı inode(ilk alan) ve sabit bağlantı sayısına (üçüncü alan) sahip olduğunu görmelisiniz :

  • ..yürütürken ls -ailbölgesindekiinner
  • .yürütürken ls -ailbölgesindekimiddle
  • middleyürütürken ls -ailbölgesindekiouter

Şimdi, / dış / orta / iç / .. / dış / orta / 'a götürür, ancak sembolik bağlantıdan erişirsem, / dış / iç / .. / dış /' a götürür. Öyle görünüyor ki iki farklı .. burada.

'De bir ..giriş var inner. Geçerli çalışma dizininiz ise outer, aynı sonuçları (dizin listesi middle)

  • ls -al inner/..
  • ls -al middle/inner/..

"Erişimde" tek durumdur ..sembolik bağlantı yoluyla farklı davranış vermelidir eğer olduğunu cdiçine inner, sembolik bağlantıyı kullanarak böylece sizin mantıksal çalışma dizini ( pwd -Lsizin itibaren) farklıdır fiziksel çalışma dizini ( pwd -P). Bu durumda, cd ..geri götürecek outer değil farklı olduğundan ..sizin kabuk senin takip çünkü giriş, ama mantıksal çalışma dizininin ve bir seviye dışarı haşhaş yerine gerçek referans ..girişi inner.

Bu, örneğin bashyerleşik cdkomutun bir parçası olarak sağlanan bir rahatlıktır . İle gerçek ..girişe geçmesini isteyerek bunu geçersiz kılabilirsiniz.

cd -P ..

burada ( yukarıda olduğu gibi) fiziksel yolu kullanma -Ptalimatı verir .cdpwd


Aha, karışıklık cdkontrol etmek için kullanmaktan geliyor . Yani, yanılıyorsam beni düzeltin, ..her zaman fiziksel ebeveyni gösterir, Eğer bir sembolik kullanırsa ..gerçek (fiziksel) ebeveyne yönlendirilir. Karışıklık sadece cddizinlere girmekle olur .
user98456

Bu aynı zamanda saniye davranışını da açıklar. Çok teşekkür ederim.
user98456

3
@Theophrastus, yine kök dizinin kendisi ls -laiolduğunu gösterir /..(aka /. veya /). Dosya sistemi bozulduğu sürece başka bir durum olmamalıdır . == ..; fs bir yere monte edildiğinde bile ..(geçici) ebeveynin doğru değerini alır (bu yüzden orada biraz sihir vardır, ..sadece dosya sistemi tablosunda basit, statik bir giriş değildir).
AnoE
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.