Mam dowiązanie symboliczne
~/link -> ~/a/really/long/path
Kiedy robię
cd ~/link
cd ..
zabiera mnie do
~
ale chcę iść do
~/a/really/long
Czy jest na to sposób?
Używam bash.
bash
cd-command
Xodarap
źródło
źródło
cd ~/a/really/long/path
po czymcd ..
wkłada pan w~
tej chwili? Nie mogę tego odtworzyć.~/a/really/long/path
a następnie cd do tego, a następnie do..
. Powinieneś skończyć w ~ (zakładając, że od tego zacząłeś).Odpowiedzi:
Bash (podobnie jak ksh, zsh, a nawet ash) śledzi zmiany w katalogu, dzięki czemu
cd /foo/bar && cd ..
zawsze zabierasz się,/foo
nawet jeślibar
jest dowiązaniem symbolicznym. Przekaż-P
opcjęcd
ignorowania śledzonej zmiany i postępuj zgodnie z „fizyczną” strukturą katalogów:Zobacz
help cd
lubman builtins
dokumentację dotyczącą wbudowanego bashacd
. Jeśli naprawdę nie lubisz funkcji śledzenia katalogów, możesz ją wyłączyć za pomocąset -P
w bash (set -o no_chase_link
w zsh).źródło
-P
albo-o physical
już ustawiony?Możesz także użyć readlink, aby znaleźć fizyczną ścieżkę do tego katalogu, a następnie przejść o jeden katalog wyżej:
źródło
Jedną z metod, której możesz użyć, jest użycie aliasu zamiast dowiązania symbolicznego, aby doprowadzić cię do ~ / a / naprawdę / długiej / ścieżki. To jest metoda, której używam, ponieważ odtąd mogę po prostu wpisać proste polecenie literowe 1/2 / et cetera zamiast cd symlink
źródło