Sembolik bağların çözülmesi (pwd)


32

Aşağıdakileri yaptığımı söyle:

cd /some/path
ln -s /target/path symbolic_name

Eğer öyleyse:

cd /some/path
cd symbolic_name
pwd

Alırım:

/some/path/symblic_name

ve yok:

/target/path

Kabuğumu doğrudan yaptığım gibi, sembolik bir bağlantıyı (tamamen CWD'yi vb. Güncelleme) "tamamen çözme" yolu var mı:

cd /target/path

?

Hedef yoluma nasıl ulaştığım konusunda "farkında" veya "hassas" gibi görünen bazı programlar çalıştırmam gerekiyor ve onların da cd /target/pathdoğrudan yaptığım gibi hedef yola geldiğimi düşünmelerini istiyorum .


7
İlgili bu soruya . Sen yapabilir pwd -Pya alias pwd='pwd -P'da cd -Pyerine sembolik bağın fiziksel yoluna gitmek.
Martín Canaval

@ MartínCanaval Teşekkürler; Aradığım şey buydu!
Ryan

Yanıtlar:


35

Kabuğunuzun pwd"akıllı" olmaya çalışan bir yerleşik yeri var . cdBir bağlantıya bir yaptıktan sonra , iç pwdgerçek bir dizine taşınmış gibi çıktının sahte.

Geçiş -Pseçeneği pwd, yani vadede pwd -P. -P( “Fiziksel” için) seçeneğini söyler pwdherhangi sembolik bağlantı izlemesini yapmak ve dizine “gerçek” yolunu göstermek için değil.

Alternatif olarak, pwdbu tür sihirleri yapmayan (ve bile yapmayan) gerçek bir ikili de olmalıdır . Sadece bu ikili açıklığı kullanın:

$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
$ mkdir a
$ ln -s a b
$ cd b
$ pwd
/home/michas/b
$ /bin/pwd
/home/michas/a

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.