Auflösen des Link-Ziels mit readlink
In diesem Schritt lernen Sie, wie Sie den readlink
-Befehl verwenden können, um das Ziel eines symbolischen Links (symbolic link) zu ermitteln.
Während ls -l
hervorragend für eine visuelle Übersicht ist, ist der readlink
-Befehl speziell dafür entwickelt, symbolische Links aufzulösen und ihren Zielpfad auszugeben. Dies ist besonders nützlich in Skripten oder wenn Sie nur den Zielpfad ohne andere Dateiinformationen benötigen.
Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project
befinden.
Verwenden Sie den readlink
-Befehl auf den symbolischen Link my_symlink
, den Sie in den vorherigen Schritten erstellt haben:
readlink my_symlink
Die Ausgabe wird der Pfad sein, auf den der symbolische Link zeigt:
original_file.txt
Dies bestätigt, dass my_symlink
tatsächlich auf original_file.txt
zeigt.
Der readlink
-Befehl hat eine nützliche Option, -f
, die alle symbolischen Links rekursiv verfolgt und sie in den absoluten Pfad des endgültigen Ziels auflöst. Dies ist hilfreich, wenn Sie eine Kette von symbolischen Links haben.
Erstellen wir einen weiteren symbolischen Link, der auf my_symlink
zeigt:
ln -s my_symlink another_link
Jetzt, wenn Sie readlink
auf another_link
ohne die -f
-Option anwenden, wird es das unmittelbare Ziel anzeigen:
readlink another_link
Ausgabe:
my_symlink
Aber wenn Sie readlink -f
auf another_link
anwenden, wird es die Kette (another_link
-> my_symlink
-> original_file.txt
) verfolgen und Ihnen den absoluten Pfad des endgültigen Ziels geben:
readlink -f another_link
Ausgabe:
/home/labex/project/original_file.txt
Dies zeigt den vollständigen Pfad zur ursprünglichen Datei. Der readlink -f
-Befehl ist sehr leistungsstark, um das endgültige Ziel eines Links zu finden, auch wenn es in anderen Links verschachtelt ist.
Sie haben nun drei Methoden gelernt, um mit symbolischen Links zu arbeiten: die Verwendung von test -L
, um zu prüfen, ob eine Datei ein Link ist, die Verwendung von ls -l
, um Link-Details und -Ziele anzuzeigen, und die Verwendung von readlink
, um den Zielpfad aufzulösen.