Symbolischer Link wird allgemein als Softlink bezeichnet oder symlink , das ist ein spezieller Dateityp, der auf eine andere Datei oder ein anderes Verzeichnis verweist.
In diesem Handbuch erfahren Sie, wie Sie unter Linux mit dem Befehl ln einen symbolischen Link erstellen, um Links zwischen Dateien herzustellen.
Arten von Links
In Linux gibt es zwei Arten von Links:Softlinks und Hardlinks.
Harte Links: Ein fester Link ist eine Kopie einer Originaldatei. Es ermöglicht den Zugriff auf die Daten in der Zieldatei. Ein Benutzer kann keinen festen Link für ein Verzeichnis erstellen, sondern nur für eine Datei. Außerdem haben fest verknüpfte Dateien eine gemeinsame Inode-Nummer. Wenn die Originaldatei gelöscht oder entfernt wird, funktioniert der Hardlink weiterhin und enthält den Inhalt der entfernten Datei. Es ist auch wichtig zu beachten, dass feste Links sich nicht über verschiedene Dateisysteme erstrecken.
Soft-Links: Im Gegensatz zu einem Hardlink ist ein Softlink lediglich ein Zeiger auf einen Dateinamen und enthält nicht den Inhalt einer anderen Datei oder der Zieldatei, auf die verwiesen wird. Wenn die Zieldatei entfernt oder gelöscht wird, ist der Softlink nicht mehr vorhanden. Die gute Seite von Softlinks ist, dass sie verwendet werden können, um auf eine Datei oder ein Verzeichnis zu verlinken, und dass sie sich über verschiedene Dateisysteme erstrecken können.
Verwendung des ln-Befehls
Der ln-Befehl wird verwendet, um Verknüpfungen zwischen Dateien herzustellen. Der Befehl erstellt standardmäßig einen festen Link. Um einen Softlink zu erstellen, hängen Sie einfach das -s an Option ( --symbolic ).
Syntax:
ln [OPTION] TARGET LINK_NAME
Um Verwirrung zu vermeiden, verwenden Sie beim Erstellen eines symbolischen Links den absoluten Pfad (relativen Pfad) der Quell- und Zieldatei.
So erstellen Sie einen symbolischen Link zu einer Datei
Führen Sie den folgenden Befehl aus, um einen symbolischen Link zu einer Datei zu erstellen:
$ ln -s { OPTIONS } file symlink
Wenn sowohl die Datei als auch der symbolische Link definiert sind, erstellt der Befehl ln einen Link von der Datei Dies ist das erste Argument für die Datei, die im zweiten Argument symlink definiert ist .
Um beispielsweise einen symbolischen Link zu einer Datei zu erstellen, verwenden Sie die Syntax,
$ ln -s original_file symlink
Hinweis:ln gibt bei Erfolg keine Ausgabe zurück.
Ersetzen Sie im Befehl die original_file mit der bestehenden Datei, für die Sie den Symlink und den Symlink erstellen möchten mit dem symbolischen Link.
Nehmen wir ein echtes Beispiel:
$ ln -s file1.txt sample_link.txt
Der obige Befehl erstellt einen symbolischen Link namens „sample_link.txt“ zu der bestehenden Datei „file1.txt“ im aktuellen Verzeichnis.
Um die Erstellung des Links zu überprüfen, verwenden Sie einfach den ls-Befehl wie gezeigt:
$ ls -l sample_link.txt
Ihre Ausgabe sollte dem ähneln, was ich unten habe:
lrwxrwxrwx 1 winnie winnie 9 Jul 12 23:43 sample_link.txt -> file1.txt
In den Berechtigungen ist das l
Flag gibt an, dass es sich um einen symbolischen Link handelt, und das Zeichen - >
gibt an, dass der symbolische Link auf die Datei file1.txt
zeigt .
Manchmal funktionieren symbolische Links aufgrund von Pfadproblemen nicht, schlagen Sie vor, den vollständigen Pfad zu verwenden:
# absolute (full path)
ln -s /path/to/originals/originalfile1.txt backup/copy.txt
# relative
cd backup
ln -s ../originals/originalfile1.txt copy.txt
So erstellen Sie symbolische Links zu einem Verzeichnis
Das Erstellen eines symbolischen Links zu einem Verzeichnis ist genauso einfach wie das Erstellen eines Links zu einer Datei. Die Syntax bleibt weitgehend gleich. Das erste Argument nimmt den Namen des Verzeichnisses, während der symbolische Link als zweites Argument angegeben wird.
Die folgende Syntax ist ein Beispiel dafür, wie Sie vorgehen würden:
$ ln -s /path/to/directory ~/directory
Zum Beispiel, um einen symbolischen Link aus dem Verzeichnis /Downloads/music/ zu erstellen zu ~/my_music Führen Sie den Befehl aus:
$ ln -s /Downloads/music ~/my_music
So überschreiben Sie einen symbolischen Link
Überschreiben symbolischer Links durch einfaches Aufrufen des ln-Befehls ohne zusätzliche Argumente erhalten Sie immer einen Fehler wie gezeigt:
Beispiel:Wenn Sie versuchen, den folgenden Befehl erneut auszuführen:
$ ln -s file1.txt sample_link.txt
Sie erhalten den angezeigten Fehler:
ln: failed to create symbolic link 'sample_link.txt': File exists
Eine Problemumgehung für dieses Problem besteht darin, eine weitere Option -f einzuführen oder --force um den Zielpfad des Symlinks wie gezeigt zu überschreiben:
$ ln -sf file1.txt sample_link.txt
Diesmal führt das Überschreiben des Softlinks zu keinem Fehler.
So entfernen Sie Symlinks
Um symbolische Linux-Links oder Symlinks zu entfernen, können Sie entweder den Befehl rm oder den Befehl unlink verwenden Befehl. Und es ist ganz einfach. Für Verknüpfung aufheben verwenden Sie die folgende Syntax, um symbolische Links zu entfernen:
$ unlink symlink_to_be_removed
Das Entfernen eines Softlinks mit dem Befehl rm ist genauso wie beim Löschen oder Entfernen einer normalen Datei:
$ rm symlink_to_be_removed
Sind Symlinks wichtig?
Es ist im Allgemeinen eine gute Idee, einen Symlink zu einer Datei zu erstellen, wenn Sie eines der folgenden Ziele erreichen möchten:
- Haben Sie von mehreren Orten aus Zugriff auf eine oder mehrere Dateien, ohne doppelte Kopien zu erstellen, die zwangsläufig viel Speicherplatz beanspruchen können.
- Wenn Sie Originalversionen der Datei beibehalten und sicherstellen möchten, dass der Link auf die neueste Version der Datei verweist. Das funktioniert, weil der Symlink auch dann aktiv bleibt, wenn Sie die Datei durch eine andere Datei mit demselben Dateinamen ersetzt haben.
Linux-Programme verwenden symbolische Links als Alias, sodass Benutzer nicht wissen müssen, welche Version des Codes verwendet wird.
# which python
/usr/bin/python
# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Feb 21 13:38 /usr/bin/python -> python2
Schlussfolgerung
Symbolische Links und Standardkürzel sind ähnlich, aber es gibt einige Unterschiede zwischen den beiden.
Eine Standardverknüpfung, wie Sie sie in Windows finden würden, ist einfach eine normale Datei, die auf ein bestimmtes Verzeichnis, eine Datei oder eine Anwendung verweist. Diese Verknüpfung wird normalerweise als Symbol angezeigt, das an einem beliebigen Ort erstellt werden kann, und wenn darauf geklickt wird, wird die Originaldatei, das Originalverzeichnis oder die Originalanwendung geöffnet.
Ein symbolischer Link repräsentiert tatsächlich die Originaldatei im funktionalen Sinne. Es ist ein direkter Ersatz für ein Objekt wie eine Datei. Ihr Linux-System liest den symbolischen Linux-Link so, als wäre es das Zielobjekt. Eine gewöhnliche Verknüpfung verweist einfach auf eine Datei oder ein Verzeichnis und tut sonst nichts.
Das ist alles über das Erstellen eines symbolischen Links in Linux und für weitere Informationen siehe ln man. Ich hoffe, Sie hatten Spaß beim Lesen und hinterlassen Sie bitte Ihre Kommentare und Vorschläge.