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

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

Ein symbolisches oder Softlink ist ein tatsächlicher Link zur Originaldatei, während ein harter Link ist eine Spiegelkopie der Originaldatei. Wenn Sie die Originaldatei löschen, hat der Softlink keinen Wert, da er auf eine nicht vorhandene Datei verweist.

Aber im Fall von Hardlink ist es genau umgekehrt. Auch wenn Sie die Originaldatei löschen, enthält der Hardlink noch die Daten der Originaldatei. Denn der Hardlink fungiert als Spiegelkopie der Originaldatei.

Kurz gesagt, ein Softlink

  • kann das Dateisystem überschreiten,
  • ermöglicht es Ihnen, zwischen Verzeichnissen zu verlinken,
  • hat eine andere Inode-Nummer und Dateiberechtigungen als die Originaldatei,
  • Berechtigungen werden nicht aktualisiert,
  • hat nur den Pfad der Originaldatei, nicht den Inhalt.

Ein harter Link

  • kann die Dateisystemgrenzen nicht überschreiten (d.h. ein Hardlink kann nur auf demselben Dateisystem funktionieren),
  • kann Verzeichnisse nicht verknüpfen,
  • hat dieselbe Inode-Nummer und Berechtigungen wie die Originaldatei,
  • Berechtigungen werden aktualisiert, wenn wir die Berechtigungen der Quelldatei ändern,
  • enthält den tatsächlichen Inhalt der Originaldatei, sodass Sie den Inhalt immer noch anzeigen können, selbst wenn die Originaldatei verschoben oder entfernt wurde.

Immer noch nicht verstanden? Gestatten Sie mir, Ihnen einige praktische Beispiele zu zeigen.

So erstellen Sie einen Softlink oder einen symbolischen Link

Lassen Sie uns ein leeres Verzeichnis mit dem Namen "test" erstellen .

$ mkdir test

Wechseln Sie zum "test" Verzeichnis:

$ cd test

Erstellen Sie jetzt eine neue Datei mit dem Namen source.file mit einigen Daten wie unten gezeigt.

$ echo "Welcome to OSTechNix" >source.file

Sehen wir uns die Daten der source.file an.

$ cat source.file
Welcome to OSTechNix

Nun, die source.file wurde erstellt.

Erstellen Sie nun einen symbolischen oder weichen Link zur source.file .

Führen Sie dazu Folgendes aus:

$ ln -s source.file softlink.file

Vergleichen wir die Daten der beiden source.file und softlink.file .

$ cat source.file
Welcome to OSTechNix
$ cat softlink.file 
Welcome to OSTechNix

Wie Sie in der obigen Ausgabe sehen, softlink.file zeigt dieselben Daten wie source.file an .

Lassen Sie uns die Inodes und Berechtigungen von softlink.file überprüfen und source.file .

$ ls -lia

Beispielausgabe:

total 12
11665675 drwxrwxr-x  2 sk sk 4096 Oct 17 11:39 .
 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665731 lrwxrwxrwx  1 sk sk   11 Oct 17 11:39 softlink.file -> source.file
11665692 -rw-rw-r--  1 sk sk   21 Oct 17 11:39 source.file

Wie wir im obigen Screenshot sehen, ist die Inode-Nummer (11665731 vs 11665692 ) und Dateiberechtigungen (lrwxrwxrwx vs -rw-r--r-- ) sind anders , obwohl die softlink.file hat denselben Inhalt wie source.file . Daher ist bewiesen, dass Softlinks nicht dieselbe Inode-Nummer und dieselben Berechtigungen wie die Originaldatei haben.

Entfernen Sie nun die Originaldatei (d. h. source.file ) und sehen, was passiert.

$ rm source.file

Prüfen Sie den Inhalt der softlink.file mit Befehl:

$ cat softlink.file

Beispielausgabe:

cat: softlink.file: No such file or directory

Wie Sie oben sehen, gibt es keine solche Datei oder kein Verzeichnis namens softlink.file nachdem wir die Originaldatei entfernt haben (also source.file ).

Jetzt verstehen wir also, dass Softlink nur ein Link ist, der auf die Originaldatei verweist. Der Softlink ist wie eine Verknüpfung zu einer Datei. Wenn Sie die Datei entfernen, ist die Verknüpfung nutzlos.

Wie Sie bereits wissen, ist die Originaldatei weiterhin verfügbar, wenn Sie den Softlink entfernen.

Empfohlene Lektüre:

  • Wie man Symlinks unter Linux auflistet
  • So finden Sie defekte Symlinks und löschen sie unter Linux

Erstellen Sie eine Datei namens source.file mit einigen Inhalten wie unten gezeigt.

$ echo "Welcome to OSTechNix" >source.file

Lassen Sie uns den Inhalt der Datei überprüfen.

$ cat source.file
Welcome to OSTechNix

Die source.file wurde jetzt erstellt.

Lassen Sie uns nun den Hardlink zur source.file erstellen wie unten gezeigt.

$ ln source.file hardlink.file

Überprüfen Sie den Inhalt von hardlink.file :

$ cat hardlink.file
Welcome to OSTechNix

Sie sehen die hardlink.file zeigt dieselben Daten wie source.file.

an

Lassen Sie uns den Inode und die Berechtigungen von hardlink.file überprüfen und source.file .

$ ls -lia

Beispielausgabe:

total 16
11665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:58 .
4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 hardlink.file
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 source.file

Jetzt sehen wir, dass sowohl hardlink.file und source.file dieselbe Inodes-Nummer haben (11665692 ) und Dateiberechtigungen (-rw-r--r-- ) . Daher ist bewiesen, dass die Hardlink-Datei die gleiche Inodes-Nummer und Berechtigungen wie die Originaldatei hat.

Vorsicht: Wenn wir die Berechtigungen für source.file ändern , wird die gleiche Berechtigung auf die hardlink.file angewendet auch.

Entfernen Sie nun die Originaldatei (d. h. source.file ) und sehen, was passiert.

$ rm source.file

Überprüfen Sie den Inhalt von hardlink.file mit Befehl:

$ cat hardlink.file

Beispielausgabe:

Wie Sie oben sehen, kann ich den Inhalt der hardlink.file anzeigen, selbst wenn ich die Quelldatei gelöscht habe . Somit ist bewiesen, dass Hardlink die gleiche Inode-Nummer, die Berechtigungen und Daten der Originaldatei teilt.

Was ist also der Unterschied zwischen Hardlink und der normal kopierten Datei?

Sie fragen sich vielleicht, warum wir einen festen Link erstellen sollten, während wir die Originaldatei einfach kopieren/einfügen können? Das Erstellen eines festen Links zu einer Datei unterscheidet sich vom Kopieren.

Wenn Sie eine Datei kopieren, wird nur der Inhalt dupliziert. Wenn Sie also den Inhalt einer Datei ändern (entweder Original oder Hardlink), hat dies keine Auswirkungen auf die andere.

Wenn Sie jedoch einen festen Link zu einer Datei erstellen und den Inhalt einer der Dateien ändern, wird die Änderung in beiden angezeigt.

Werfen wir einen Blick auf die source.file.

$ cat source.file 
Welcome to OSTechNix

Die Quelldatei hat eine einzelne Zeile, die besagt - Willkommen bei OSTechNix.

Fügen Sie in source.file eine neue Zeile an, zum Beispiel "Welcome to Linux". oder hardlink.file .

$ echo "Welcome to Linux" >>source.file

Überprüfen Sie nun den Inhalt beider Dateien.

$ cat hardlink.file 
Welcome to OSTechNix
Welcome to Linux
$ cat source.file 
Welcome to OSTechNix
Welcome to Linux

Sehen? Die Änderungen, die wir gerade an source.file vorgenommen haben werden in beiden Dateien aktualisiert. Bedeutung - beide Dateien (Quelle und fester Link) werden synchronisiert.

Alle Änderungen, die Sie in einer Datei vornehmen, werden in einer anderen widergespiegelt. Wenn Sie die Datei normalerweise kopieren/einfügen, werden Sie keine neuen Änderungen in anderen Dateien sehen.

Weitere Einzelheiten finden Sie in den Manpages.

$ man ln

Schlussfolgerung

In diesem Handbuch haben wir besprochen, was Softlink und Hardlink in Linux sind, wie man Softlink und Hardlink mit Beispielbefehlen erstellt, und schließlich haben wir den Unterschied zwischen Hardlink und normal kopierter Datei erklärt.

Ich hoffe, Sie haben eine grundlegende Vorstellung davon, wie man symbolische oder weiche Links und harte Links unter Linux verwendet.


Linux
  1. Sortierbefehl in Linux mit Beispielen

  2. Hardlinks und Softlinks in Linux erklärt

  3. So erstellen Sie Soft- und Hardlinks in Linux

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

  5. Unterschied zwischen Softlinks und Hardlinks in Linux

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

Verwendung des Linux-mv-Befehls mit Beispielen

Linux-Mount-Befehl mit Beispielen

gawk Linux-Befehl mit Beispielen

Linux-make-Befehl mit Beispielen

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