Hardlinks und Softlinks sind wichtige Konzepte, die Sie verstehen sollten, wenn Sie in einer Unix-ähnlichen Umgebung arbeiten. In diesem Artikel werden wir erörtern, was Hardlinks und Softlinks sind und wie sie unter Linux erstellt werden.
Linux behandelt alles als Datei. Unabhängig davon, ob es sich um ein Blockgerät, ein Zeichengerät, einen Socket oder eine benannte Pipe handelt, behandelt Linux sie als Datei. Hardlinks und weiche Links sind auch ein Dateityp, der tatsächlich in Bezug auf eine andere Datei erstellt wird.
Was ist Hardlink unter Linux
Hardlink ist wie ein Klon der Originaldatei. Alle Hardlinks haben dieselbe Inode-Nummer und das Entfernen der Originaldatei oder einer anderen Hardlink-Datei hat keine Auswirkungen auf andere Dateien, und dennoch können Sie den Dateiinhalt lesen.
HINWEIS :Für Verzeichnisse können keine Hardlinks erstellt werden.
Wie man Hardlinks unter Linux erstellt
Sehen wir uns an, wie man mit Hardlinks arbeitet. Ich erstelle eine Datei mit dem Namen file1.txt und einige Inhalte hineinschreiben.
$ cat file1.txt
Führen Sie nun den Befehl ls mit dem -i
aus -Flag, um die Inode-Nummer von file1.txt zu überprüfen und Linkanzahl.
$ ls -li file1.txt
Erstellen Sie nun einen neuen Hardlink und führen Sie denselben ls-Befehl aus um die Inode-Nummer zu überprüfen. Sie werden sehen, dass beide Dateien dieselben Inode-Nummern haben.
$ ln <source-file> <destination-file> $ ln file1.txt file2.txt
Ich werde jetzt eine neue Hardlink-Datei aus file2.txt erstellen die bereits aus file1.txt erstellt wurde . Überprüfen Sie die Anzahl der Links und sie wird in allen Dateien auf 3 aktualisiert.
$ ls -li file2.txt /home/karthick/file3.txt
So entfernen Sie Hardlinks unter Linux
Wenn Sie nun eine der fest verknüpften Dateien löschen, wird die Verknüpfungsanzahl in allen Dateien entsprechend aktualisiert, und Sie können weiterhin auf den Dateiinhalt zugreifen.
$ rm file1.txt
Um alle fest verknüpften Dateien vollständig aus dem Dateisystem zu entfernen, können Sie den find-Befehl verwenden, um die Dateien mit derselben Inode-Nummer zu suchen und die Dateien zu entfernen.
$ find <directory> -inum <inode-number> # SYNTAX $ find / -inum 415314 # Finding all files with Inode 51425368
Um die Dateien zu entfernen, können Sie eine exec hinzufügen Befehl zum finden Befehl.
$ sudo find / -inum415314 -exec rm -f {} \;
HINWEIS :Wenn Sie find ausführen Befehl und wenn Sie alle Verzeichnisse im Dateisystem scannen möchten, verwenden Sie besser sudo .
Was sind Softlinks unter Linux
Softlinks manchmal Symlinks oder symbolische Links genannt. Wenn Sie einen Softlink erstellen, wird eine neue Datei erstellt und diese Datei verweist auf die übergeordnete Datei. Stellen Sie sich dies als eine Verknüpfung vor, die Sie für Dateien und Ordner erstellen. Eine neue Datei hat einen anderen Inode als die übergeordnete Datei.
$ cat > slink.txt $ ls -li slink.txt
So erstellen Sie Softlinks unter Linux
Erstellen Sie nun einen neuen Softlink und führen Sie denselben ls-Befehl aus um die Inode-Nummer zu überprüfen. Sie werden sehen, dass beide Dateien die gleichen Inode-Nummern haben. Sehen Sie sich auch die Anzahl der Links für jede Datei an.
$ ln -s <source> <destination> # SYNTAX $ ln -s file1.txt file2.txt
Schauen Sie sich die Linkanzahl aus dem obigen Bild an, sie wird immer 1 sein für Softlinks, da alle Dateien eine separate Inode-Nummer erhalten. Wenn Sie jetzt den Softlink löschen, hat dies keine Auswirkungen auf die Originaldatei.
# grep ^ ./slink* # Display the contents of file1, file2 # rm slinked_linked.txt
Wenn Sie die verknüpfte Originaldatei löschen, wird ein Fehler ausgegeben, wenn Sie versuchen, darauf zuzugreifen.
$ ls -li $ rm slink.txt $ ls -li $ cat slink_linked.txt
Manchmal entfernen Sie möglicherweise die übergeordnete Datei, vergessen jedoch, alle verknüpften Dateien zu entfernen. Sie können alle verwaisten Softlinks überprüfen und bereinigen, indem Sie den folgenden Befehl ausführen. Suchen versucht, alle verwaisten Links von /home/ zu finden Verzeichnis und -delete
entfernt die Links.
# find -L /home/ -type l -delete
Das war es für diesen Artikel. Wir würden gerne Ihr wertvolles Feedback oder Tipps zur Verbesserung der Artikel hören.