Bir bağlantının bağlı olduğu bir dizine girme


12

Bir cdbağlantı oluşturduğumda, geçerli yoluma, bağlantının bağlandığı dizinin yolu yerine bağlantının yolu eklenir. Örneğin

~/dirlinks/maths$ ls -l logic
lrwxrwxrwx 1 tim tim 71 Jul 27 10:24 logic -> /windows-d/academic discipline/study objects/areas/formal systems/logic

~/dirlinks/maths$ cd logic
~/dirlinks/maths/logic$ pwd
/home/tim/dirlinks/maths/logic

~/dirlinks/maths/logic$ cd ..
~/dirlinks/maths$

Geçerli yolumun bağlantılı dizinin yoluna değişmesini istiyorum, böylece bağlantılı dizinin üst dizinleriyle de çalışabilirim. lsBağlantılı yönlendirmeyi bulmak için bağlantının yanı sıra , cdbuna ulaşmak için bunu yapmanın daha basit yolları nelerdir? Örneğin, cdbir bağlantıya girdikten sonra , geçerli yolunuzu bağlantılı diz yoluna nasıl değiştirirsiniz?

Yanıtlar:


22

POSIX kabuğu -Pile cd builtin seçeneğini kullanabilirsiniz :

cd -P <link>

İle bashgelen, man bash:

-P seçeneği, sembolik bağları izlemek yerine fiziksel dizin yapısını kullandığını söylüyor (ayrıca set yerleşik komutunun -P seçeneğine de bakın)


7
Bunu cd -P .orijinalden sonra yapabilirsiniz cd.
ctrl-alt-delor

5

Sen kullanabilirsiniz readlinknerede bağlantı noktalarını belirlemek için, ve senin gerçek web hedefi olarak bu çıktıyı sağlamak cd.

cd "$(readlink <link>)"

Sembolik bağlantıları işaret eden ek sembolik bağlantılar söz konusu olduğunda, readlinkörneğin kanonik bir dosya hedefine sembolik bağlantıları izleme seçeneklerinden birini belirtmedikçe, yalnızca hedefi sağlar readlink -f <link>.

readlink - sembolik bir bağlantının veya standart dosya adının yazdırma değeri

-f, -
verilen adın her bileşenindeki her sembolik bağı tekrar tekrar izleyerek kurallı hale getirir ; son bileşen hariç hepsi mevcut olmalıdır

-e, --canonicalize-varolan
canonicalize verilen adın her bileşeninde her symlink'i yinelemeli olarak izleyerek, tüm bileşenlerin var olması gerekir

-m, --canonicalize-kayıp
canonicalize bileşen adının gereklilikleri olmadan, verilen adın her bileşenindeki her symlink'i yinelemeli olarak izleyerek


5

Korn benzeri kabuklar, geçerli dizine giden yoldaki sembolik bağlantıları izler (bu, mantıksal geçerli dizin izleme olarak bilinir). Eğer simgesel bağları genişletmek istiyorsanız, seçeneği geçmesi -Piçin cd(fiziksel geçerli dizin takibi için) yerleşiğini:

cd -P logic

Sembolik bir bağlantı aracılığıyla eriştiğiniz bir dizindeyseniz ve izlenen geçerli dizini, sembolik bağlar genişletilmiş yolla değiştirmek istiyorsanız,

cd -P .

Geçerli dizinin yolunu, sembolik bağlantılar genişletilmiş olarak yazdırmak istiyorsanız, çalıştırın pwd -P. Bash'da, mantıksal izlemeyi kapatmak istiyorsanız, çalıştırın set -P; zsh, run set -wveya setopt chase_links.

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.