Linkziel ausgebenWohin zeigt ein symbolischer Link? Dumme Frage, könnte man denken, schließlich lässt sich das Ziel mitls -l anzeigen. Doch so einfach ist es
nicht immer. Angezeigt wird mit diesem Kommando nur das unmittelbare
Ziel. Das kann aber ebenfalls ein symbolischer Link sein, der wieder auf
einen Link zeigt usw.; tatsächlich kann sich hinter jedem Dateinamen eine
beliebig lange Verweiskette verbergen. Welcher Pfadname am Ende dieser Kette
steht, ist der ls -Ausgabe nicht zu entnehmen.
Auf vielen System gibt es dafür ein Kommando readlink , das mit
der Option -e aufgerufen das Endziel ausgibt. Ansonsten hilft die
folgende Funktion getlink , die. Aufruf:
getlink -l pfad
Ohne Option gibt sie das unmittelbare Verweisziel unverändert aus, ähnlich
wie Alle Pfade werden in normalisierter Form ausgegeben, d.h. sie enthalten keine
Komponente [1] Dank an Greg Wooledge für einige Hinweise, wie sich selbst krankhafte Dateinamen wie 'a->b' oder solche mit anhängenden Zeilenvorschüben behandeln lassen
|