Ich habe einen Symlink
~/link -> ~/a/really/long/path
Wenn ich es tue
cd ~/link
cd ..
es bringt mich zu
~
aber ich möchte gehen
~/a/really/long
Gibt es eine Möglichkeit, dies zu tun?
Ich benutze Bash.
bash
cd-command
Xodarap
quelle
quelle
cd ~/a/really/long/path
danncd ..
setzt du im~
Moment ein? Das kann ich nicht reproduzieren.~/a/really/long/path
dann eine CD dazu und dann dazu..
. Sie sollten wieder in ~ landen (vorausgesetzt, Sie haben dort angefangen).Antworten:
Bash (sowie ksh, zsh und sogar ash) verfolgen Verzeichnisänderungen, sodass Sie
cd /foo/bar && cd ..
immer zu einem Symlink weitergeleitet werden ,/foo
selbst wennbar
es sich um einen Symlink handelt. Übergeben Sie die-P
Option zumcd
Ignorieren der nachverfolgten Änderung und folgen Sie der „physischen“ Verzeichnisstruktur:Siehe
help cd
oderman builtins
für die Dokumentation zur Bash-Funktioncd
. Wenn Sie die Verzeichnisverfolgungsfunktion wirklich nicht mögen, können Sie sie mitset -P
in bash (set -o no_chase_link
in zsh) deaktivieren.quelle
-P
oder-o physical
schon gestellt?Sie können auch readlink verwenden, um den physischen Pfad zu diesem Verzeichnis zu finden, und dann ein Verzeichnis höher gehen:
quelle
Sie können auch einen Alias anstelle eines Symlinks verwenden, um zu ~ / a / really / long / path zu gelangen. Das ist die Methode, die ich benutze, da ich dann einfach einen einfachen 1/2 / usw. Buchstabenbefehl anstelle von cd symlink eingeben kann
quelle