Finden Sie heraus, welcher Pfad ohne Symlink wäre?


10

Gibt es unter Linux eine Möglichkeit, herauszufinden, wie der tatsächliche Pfad zu diesem Verzeichnis aussieht, wenn ich keinen symbolischen Link verwendet habe, um dorthin zu gelangen?

Erwägen:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5

Oder:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5

Gibt es eine Möglichkeit herauszufinden, dass / home / dave / tmp / 5 wirklich / home / dave / 1/2/3/4/5 ist?

Antworten:


13

Für die Verwendung mit cdverwenden pwd -P:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5

Verwenden Sie für generische symbolische Links readlink:

$ cd ..
$ readlink 5
1/2/3/4/5

Oder ls -l(mit -dfür Verzeichnisse):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5

Die Datei readlink -f gibt den nicht verknüpften Pfad zu dieser Datei zurück, was ich möchte. Vielen Dank!
David Mackintosh

1
huh, ich hatte immer / bin / pwd verwendet, da es nicht wissen kann, wie es dahin gekommen ist, wo es ist, im Gegensatz zu der eingebauten pwd-Shell. Offensichtlich äquivalent zu pwd -P.
Peter Cordes

ls -lda funktioniert aus irgendeinem Grund nicht für versteckte Sym-Links
Casebash

2

Sie möchten entweder readlink -f(in Coreutils, standardmäßig installiert) oder das leichter zu merkende realpath, das Sie installieren müssen.


0

Eine alternative Methode, die ich verwendet habe,

cd to the symlink
Ctrl+Shift+T #To open a new tab
pwd

Neue Registerkarte pwd, gibt den Symlink. ;)


Es tut mir leid, welche Shell, welchen Fenstermanager oder welches Terminal verwenden Sie hier?
David Mackintosh

Ich denke, er spricht über Gnome-Terminal
Prestomation

Ja, ich habe über das Gnome-Terminal gesprochen.
Lakshman Prasad
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.