Wenn ich mit einem Befehl wie im Terminal einen symbolischen Link erstelle
ln -s /path/to/some/directory symbolicLink
und folge dann dem Link mit
cd symbolicLink
Das Terminal scheint zu glauben, dass der CWD ~/symbolicLink/
tatsächlich angezeigt wird ~/path/to/some/directory/
(vorausgesetzt, die Verknüpfung wurde ~
natürlich hergestellt). Das heißt, wenn ich dann eingebe, cd ..
werde ich zurückgebracht ~
, weil das Terminal "denkt", dass dies das übergeordnete Element des cwd ist.
Was müsste ich so ändern, dass cd ..
ich stattdessen ~/path/to/some/
zum wahren Elternteil von würde ~/path/to/some/directory/
?
cd -P
löst immer noch das Problem, mit dem ich konfrontiert war, ist aber dennoch nützlich zu wissen.Eine alternative Möglichkeit ist das Ausführen von:
quelle
Ich fühle Ihren Schmerz - ich bin der Meinung
bash
, dass ich aufgrund dieses Verhaltens für die interaktive Verwendung grundsätzlich kaputt bin .tcsh
ist eine weitaus benutzerfreundlichere Shell für den interaktiven Gebrauch. Lassen Sie diebash
Programmierung (wenn Sie darauf bestehen, Shell-Skripte zu schreiben, wenn es unter den vielen Skriptsprachen viel bessere Alternativen gibt).Um die Shells für einen Benutzer zu ändern, geben Sie
chsh
in die Befehlszeile ein und befolgen Sie die Anweisungen (ich empfehle erneut/bin/tcsh
und das ausgezeichnete O'Reilly-Buch Using csh and tcsh , das für so gut wie nichts Verwendetes verfügbar ist).quelle
cd
für Symlinks befassen . Ich muss daran denken,set -o physical
mein.bashrc
oder.bash_profile
für jede Maschine, die ich benutze, einzutragen.