GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hardlinks und Softlinks in Linux erklärt

Waren Sie jemals mit etwas vertraut, haben es umgangen, aber seine Konzepte nicht vollständig verstanden? Ich habe das Gefühl, dass mir das häufiger passiert als den meisten Menschen. Dies ist ein frustrierendes Gefühl, aber es ist auch eines, das oft leicht behoben werden kann. Manchmal braucht es nur jemanden, der das Konzept in „einfachem Englisch“, auch bekannt als Laienbegriff, erklärt. Das ist das Ziel dieses Artikels. Ich möchte über harte Links sprechen und weiche (symbolische) Links in den grundlegendsten Begriffen möglich. Sie werden vielleicht feststellen, dass dieses Konzept, das für Systemadministratoren oft ein Kampf ist, ziemlich einfach ist. Nicht zuletzt führe ich Sie durch die Syntax zum Erstellen dieser Links (an die sich viele Menschen nur schwer erinnern können). Kommen wir also zur Sache.

Harte Links

Das Konzept eines Hardlinks ist das grundlegendste, das wir heute besprechen werden. Jede Datei im Linux-Dateisystem beginnt mit einem einzelnen Hardlink. Der Link steht zwischen dem Dateinamen und den eigentlichen Daten, die im Dateisystem gespeichert sind. Das Erstellen eines zusätzlichen Hardlinks zu einer Datei bedeutet ein paar verschiedene Dinge. Lassen Sie uns darüber diskutieren.

Zuerst erstellen Sie einen neuen Dateinamen, der auf genau die gleichen Daten wie der alte Dateiname verweist. Das bedeutet, dass die beiden Dateinamen, obwohl unterschiedlich, auf identische Daten verweisen. Wenn ich zum Beispiel die Datei /home/tcarrigan/demo/link_test erstelle und schreibe Hallo Welt In der Datei habe ich einen einzelnen harten Link zwischen dem Dateinamen link_test und den Dateiinhalt hello world .

[tcarrigan@server demo]$ ls -l
total 4
-rw-rw-r--. 1 tcarrigan tcarrigan 12 Aug 29 14:27 link_test

Beachten Sie hier die Anzahl der Links (1 ).

Als nächstes erstelle ich einen neuen Hardlink in /tmp in genau dieselbe Datei mit dem folgenden Befehl:

[tcarrigan@server demo]$ ln link_test /tmp/link_new

Die Syntax ist ln (original file path) (new file path) .

Wenn ich mir jetzt mein Dateisystem ansehe, sehe ich beide Hardlinks.

[tcarrigan@server demo]$ ls -l link_test /tmp/link_new 
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Der Hauptunterschied hier ist der Dateiname. Die Anzahl der Links wurde ebenfalls geändert (2 ). Vor allem, wenn ich cat den Inhalt der neuen Datei, es zeigt die ursprünglichen Daten.

[tcarrigan@server demo]$ cat /tmp/link_new 
hello world

Wenn Änderungen an einem Dateinamen vorgenommen werden, spiegelt der andere diese Änderungen wider. Die Berechtigungen, die Anzahl der Links, der Besitz, die Zeitstempel und der Dateiinhalt sind genau gleich. Wenn die Originaldatei gelöscht wird, sind die Daten weiterhin unter dem sekundären Hardlink vorhanden. Die Daten werden erst dann von Ihrem Laufwerk entfernt, wenn alle Verknüpfungen zu den Daten entfernt wurden. Wenn Sie zwei Dateien mit identischen Eigenschaften finden, sich aber nicht sicher sind, ob sie fest verknüpft sind, verwenden Sie ls -i Befehl, um den Inode anzuzeigen Anzahl. Dateien, die fest miteinander verknüpft sind, haben dieselbe Inode-Nummer.

[tcarrigan@server demo]$ ls -li link_test /tmp/link_new 
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Die gemeinsame Inode-Nummer ist 2730074 , was bedeutet, dass diese Dateien identische Daten sind.

Wenn Sie weitere Informationen zu Inodes wünschen, lesen Sie meinen vollständigen Artikel hier.

Harte Grenzen

Obwohl dies nützlich ist, gibt es einige Einschränkungen für die Möglichkeiten von Hardlinks. Für den Anfang können sie nur für normale Dateien erstellt werden (nicht für Verzeichnisse oder spezielle Dateien). Außerdem kann ein fester Link nicht mehrere Dateisysteme umfassen. Sie funktionieren nur, wenn der neue Hardlink auf demselben Dateisystem wie das Original vorhanden ist.

Softlinks

Allgemein als symbolische Links bezeichnet , verlinken Softlinks nicht reguläre und reguläre Dateien. Sie können sich auch über mehrere Dateisysteme erstrecken. Per Definition ist ein Softlink keine Standarddatei, sondern eine spezielle Datei, die auf eine vorhandene Datei verweist. Schauen wir uns an, wie man einen Softlink erstellt. Ich verwende den ln -s Befehl und die folgende Syntax:

ln -s (file path you want to point to) (new file path)

Im folgenden Beispiel erstelle ich eine neue Datei unter /home/tcarrigan/demo/soft_link_test mit dem Dateiinhalt soft Hello world . Dann erstelle ich einen Softlink zu dieser Datei unter /tmp/soft_link_new :

[tcarrigan@server demo]$ ln -s /home/tcarrigan/demo/soft_link_test /tmp/soft_link_new
[tcarrigan@server demo]$ ls -l soft_link_test /tmp/soft_link_new 
-rw-rw-r--. 1 tcarrigan tcarrigan 17 Aug 30 11:59 soft_link_test
lrwxrwxrwx. 1 tcarrigan tcarrigan 35 Aug 30 12:09 /tmp/soft_link_new -> /home/tcarrigan/demo/soft_link_test

Beachten Sie, dass /tmp/soft_link_new ist nur ein symbolischer Link, der auf den ursprünglichen /home/tcarrigan/demo/soft_link_test zeigt . Wenn ich cat den Inhalt von /tmp/soft_link_new , sollte ich die weiche Hallo-Welt sehen Text.

[tcarrigan@server demo]$ cat /tmp/soft_link_new 
soft Hello world

All dies klingt großartig, aber es gibt einige Nachteile bei der Verwendung eines Softlinks. Die größte Sorge ist Datenverlust und Datenverwirrung. Wenn die Originaldatei gelöscht wird, wird der Softlink unterbrochen. Diese Situation wird als Dangling Soft Link bezeichnet . Wenn Sie eine neue Datei mit dem gleichen Namen wie das Original erstellen, hängt Ihr freier Softlink überhaupt nicht mehr. Es verweist auf die neu erstellte Datei, unabhängig davon, ob dies Ihre Absicht war oder nicht. Denken Sie also daran.

Hart oder weich?

Hier gibt es keine klare Antwort. Der beste Link ist der Typ, der zu Ihrer speziellen Situation passt. Während es schwierig sein kann, sich diese Konzepte zu merken, ist die Syntax ziemlich einfach, das ist also ein Plus! Um die beiden in Ihrem Gedächtnis leicht voneinander zu trennen, überlasse ich Ihnen Folgendes:

  • Ein fester Link verweist immer auf einen Dateinamen auf Daten auf einem Speichergerät.
  • Ein Softlink verweist immer von einem Dateinamen auf einen anderen Dateinamen, der dann auf Informationen auf einem Speichergerät verweist.

Hoffentlich hilft Ihnen das dabei, sie getrennt zu halten, während Sie sich durch die Linktypen arbeiten, die Sie benötigen, um Ihre täglichen Ziele zu erreichen!

[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ]


Linux
  1. So erstellen Sie harte und symbolische Links in Linux

  2. So erstellen Sie Soft- und Hardlinks in Linux

  3. Pipes und Redirection in Linux - erklärt!

  4. Was sind Softlinks und Hardlinks im Linux-Dateisystem?

  5. Unterschied zwischen Softlinks und Hardlinks in Linux

Anleitung zum Hinzufügen symbolischer Linux-Links

Erläuterung von Soft Link und Hard Link in Linux anhand von Beispielen

Was sind symbolische Links in Linux? Wie erstellt man symbolische Links?

Der ln-Befehl unter Linux:Soft- und Hardlinks erstellen

Softlinks in Linux – Die vollständige Referenz

Hardlinks und Softlinks in Linux:Alles, was Sie wissen müssen