sembolik olmayan pwd


54

Ben yaparsanız pwdbunu ben geçerli dizine girmek için kullanılan her türlü sembolik bağ kullanır dikkat edin. Bana içinde bulunduğum "gerçek" dizini söyleyebiliyor muyum ... yani kökten o anki dizinime giden yolu, herhangi bir sembolik bağlantı kullanmadan mı?

Yanıtlar:


70

POSIX kılavuzuna göre pwd, -Pseçenek kullanımda olabilir:

-P Yazılan mutlak yol adı, yol adı bağlamında sembolik link tipi dosyalara atıfta bulunan dosya adlarını içermeyecektir.

Böylece

$ pwd -P

ihtiyacın olan şey olmalı.


man pwdBu komutun seçeneklerini bulmak için kabuğa yazarak bu bilginin kolayca bulunabileceğini belirtmek isterim .
Chud37,

7

Pwd kabuğu yerleşik, sizin cd(ve içinde sakladığınız $PWD) kabuğun izleyeceği yolu kullanır . Bu, eğer karmaşık (derin) bir yolun bir bağlantısına sahipseniz, gerçek yol yerine bu dizine geçmek için ne yazdığınızı söyleyecektir. Bu size çoğu zaman ne istediğinizi vermek için yapılır.

/bin/pwdkullandığı getcwd(bu gün bir kütüphane çağrısı, okuma olduğu sistem çağrısı /proc/self/cwdgeçerli dizinin kanonik yolunu döndürür), sans tüm symlink dolaşımları.

Steven D'nin belirttiği gibi, görmezden gelme seçeneği pwdvardır . Ayrıca içeriğini döndürme seçeneğine de sahiptir . İçin olan man sayfası varsayılan olarak hangi seçeneğin kullanıldığını söylemez, ancak deneyim bana yukarıdaki açıklamanın doğru olduğunu söyler (kabuk vs. ). Ancak muhtemelen buna güvenmemelisiniz ve sadece kullanmalısınız .-P$PWD-L$PWDpwdpwd/bin/pwdpwd -P


2
Tanımladığınız davranış, POSIXLY_CORRECT ayarlanmadığında /bin/pwdGNU olan Linux sistemlerindedir pwd. POSIX sistemlerinde pwdiçindedir /bin. /bin/pwd$ PWD kullanacak ve sembolik bağlantıları olan yolları döndürecektir. GNU pwd, ortamında bir POSIXLY_CORRECT değişkeni bulduğunda bu POSIX biçiminde davranacaktır.
Stéphane Chazelas
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.