Ändern des übergeordneten Verzeichnisses (../) mit Symlinks


32

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.


1
Du meinst cd ~/a/really/long/pathdann cd ..setzt du im ~Moment ein? Das kann ich nicht reproduzieren.
Mikel

1
@Mikel: Nein, erst einen Symlink erstellen, ~/a/really/long/pathdann eine CD dazu und dann dazu ... Sie sollten wieder in ~ landen (vorausgesetzt, Sie haben dort angefangen).
Xodarap

Ist meine Bearbeitung korrekt? Ich konnte die Frage vorher nicht verstehen.
Mikel

Antworten:


38

Bash (sowie ksh, zsh und sogar ash) verfolgen Verzeichnisänderungen, sodass Sie cd /foo/bar && cd ..immer zu einem Symlink weitergeleitet werden , /fooselbst wenn bares sich um einen Symlink handelt. Übergeben Sie die -POption zum cdIgnorieren der nachverfolgten Änderung und folgen Sie der „physischen“ Verzeichnisstruktur:

cd -P ..

Siehe help cdoder man builtinsfür die Dokumentation zur Bash-Funktion cd. Wenn Sie die Verzeichnisverfolgungsfunktion wirklich nicht mögen, können Sie sie mit set -Pin bash ( set -o no_chase_linkin zsh) deaktivieren.


1
Wie habe ich die Frage gelesen, die OP hat -Poder -o physicalschon gestellt?
Mikel

+1, aber Link zur Manpage vorschlagen.
Faheem Mitha

@Mikel: Nein, die Frage besagt, dass er der symbolischen Verknüpfung folgt, nicht der physischen Verzeichnisstruktur.
Faheem Mitha

Entschuldigung, ich habe nicht wirklich versucht, Ihren Beitrag zu bearbeiten. Vorgeschlagene Bearbeitung jetzt eingereicht.
Faheem Mitha

4

Sie können auch readlink verwenden, um den physischen Pfad zu diesem Verzeichnis zu finden, und dann ein Verzeichnis höher gehen:

cd $(readlink -f .)/..

3

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.