Wenn ich verwende ls -la symlinkName
oder stat symlinkName
nicht alle der Pfad angezeigt (zB ../../../one/two/file.txt
)
Was ist der Linux-Befehl, der den vollständigen Pfad anzeigt?
Wenn ich verwende ls -la symlinkName
oder stat symlinkName
nicht alle der Pfad angezeigt (zB ../../../one/two/file.txt
)
Was ist der Linux-Befehl, der den vollständigen Pfad anzeigt?
Antworten:
realpath
ist nicht für alle Linux-Varianten verfügbar, readlink
sollte es aber sein.
readlink -f symlinkName
Das Obige sollte den Trick machen.
Wenn Sie keines der oben genannten Programme installiert haben, können Sie alternativ Folgendes tun, wenn Sie Python 2.6 (oder höher) installiert haben
python -c 'import os.path; print(os.path.realpath("symlinkName"))'
-f
Flag weg und dies funktioniert. dhreadlink symlinkName
realpath <path to the symlink file>
sollte den Trick machen.
man realpath
zeigt unten, dass es Teil von "GNU coreutils" ist, was ich mir ziemlich sicher bin, dass es immer auf Ubuntu läuft. Obwohl @IanStapletonCordasco sagt, dass " realpath
nicht für alle Linux- Varianten verfügbar ist", sollte es zumindest für alle verfügbar sein Ich glaube, die Aromen von Ubuntu und Ubuntu-Derivaten.
Unix Aromen -> ll symLinkName
OSX -> readlink symLinkName
Der Unterschied besteht darin, dass der erste Weg den Sym-Link-Pfad blinkend anzeigt und der zweite Weg ihn nur auf der Konsole wiedergibt.
Eine andere Möglichkeit, Informationen stat
anzuzeigen, ist ein Befehl, der weitere Informationen anzeigt. Befehl stat ~/.ssh
auf meiner Maschinenanzeige
File: ‘/home/sumon/.ssh’ -> ‘/home/sumon/ssh-keys/.ssh.personal’
Size: 34 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 25297409 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ sumon) Gid: ( 1000/ sumon)
Access: 2017-09-26 16:41:18.985423932 +0600
Modify: 2017-09-25 15:48:07.880104043 +0600
Change: 2017-09-25 15:48:07.880104043 +0600
Birth: -
Hoffe das kann jemandem helfen.
Sie können awk
mit einem system
Aufruf readlink
das Äquivalent einer ls
Ausgabe mit vollständigen Symlink-Pfaden abrufen . Beispielsweise:
ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'
Zeigt zB an
thin_repair ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_restore ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_rmap ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_trim ->/home/user/workspace/boot/usr/bin/pdata_tools
touch ->/home/user/workspace/boot/usr/bin/busybox
true ->/home/user/workspace/boot/usr/bin/busybox
ls -l
. Dies funktioniert auch überhaupt nicht, versucht es für alles im Verzeichnis (keine Links) und wenn Ihr ls für die Verwendung von Farben konfiguriert ist, bricht awk vollständig ab. benutze einfachfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'