Üst dizini (../) sembolik bağlantılarla değiştirme


32

Bir bağlantım var

~/link -> ~/a/really/long/path

Ben yaparken

cd ~/link
cd ..    

beni alır

~

ama ben gitmek istiyorum

~/a/really/long

Bunu yapmanın bir yolu var mı?

Ben bash kullanıyorum.


1
Yani cd ~/a/really/long/patho zaman cd ..sen koyar ~anda? Bunu çoğaltamam.
Mikel

1
@Mikel: Hayır, ilk önce oraya ~/a/really/long/pathcd ile bir sembolik bağlantı oluşturun ... Geri dönmelisin ~ (başladığın yer burası).
Xodarap

Düzenlemem doğru mu? Soruyu daha önce anlayamadım.
Mikel

Yanıtlar:


38

Bash (ve ayrıca ksh, zsh ve hatta ash) dizini değiştirir, böylece bir sembolik bağlantı olsa bile cd /foo/bar && cd ..sizi daima alır . İzlenen değişikliği göz ardı etme ve "fiziksel" dizin yapısını takip etme seçeneğini işaretleyin :/foobar-Pcd

cd -P ..

Bash yerleşimi hakkında belgeler için help cdveya bölümüne bakınız . Dizin izleme özelliğini gerçekten beğenmezseniz, bash ( zsh) ile kapatabilirsiniz .man builtinscdset -Pset -o no_chase_link


1
Soruyu okumak yolu, OP etti -Pya -o physicalzaten ayarlanmış?
Mikel

+1, ancak man sayfasına bağlantı önerin.
Faheem Mitha

@Mikel: Hayır, soru fiziksel dizin yapısını değil sembolik bağlantıyı takip ettiğini söylüyor.
Faheem Mitha

Maalesef yayınınızı düzenlemeyi denemedim. Önerilen düzenleme şimdi gönderildi.
Faheem Mitha

4

Ayrıca bu dizine giden fiziksel yolu bulmak için readlink kullanabilir, ardından bir dizine daha yukarı gidebilirsiniz:

cd $(readlink -f .)/..

3

Kullanabileceğiniz bir yöntem, sizi ~ / a / really / long / path dizinine yönlendirmek için bir sembol yerine takma ad kullanmaktır. Kullandığım yöntem bu, çünkü o zamandan beri cd symlink yerine basit bir 1/2 / et cetera letter komutu yazabiliyorum.

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.