Wie wechselt man das Verzeichnis in den absoluten Pfad eines symbolisch verknüpften Verzeichnisses?

7

Ich bin derzeit in einem symbolischen Link-Verzeichnis und möchte auf dem absoluten Pfad eine Ebene nach oben gehen, aber ich kann nicht, da es mich wieder in mein Home-Verzeichnis (~) zurückbringen wird. Ich kann pwd -P ausführen, um den absoluten Pfad zu erhalten, aber wie leite ich dieses Ergebnis in den Befehl cd ein? Ich habe immer gedacht, dass es das ist: {}

Stichprobe:

10:21:55 {master *} ~/ch$ pwd -P 
/home/drupal/sites/all/themes/house

10:22:16 {master *} ~/ch$ pwd -P | cd {}
bash: cd: {}: No such file or directory

10:22:20 {master *} ~/ch$ 
Patoshi パ ト シ
quelle
1
Der einfachste Befehl wäre: "cd -P."
Patoshi

Antworten:

10

Das funktioniert bei mir:

cd `pwd -P`

Sie können auch cd -Pwie folgt verwenden:

cd -P ~/ch

oder wenn Sie sich bereits im verknüpften Verzeichnis befinden:

cd -P .
schwer
quelle
4

Sie können die Ausgabe eines Befehls mit dem Befehlsersetzungsoperator in die Befehlszeile einfügen $(...).

Dies wird beispielsweise in das physische aktuelle Arbeitsverzeichnis verschoben (alle symbolischen Links wurden aufgelöst):

cd $(pwd -P)

Um eine Ebene höher zu gehen (Ihr ultimatives Ziel, wie ich verstanden habe):

cd $(pwd -P)/..
Janos
quelle