Inhaltsverzeichnis- 1. Grundlegende Speicherung von Dateien und Verzeichnissen
- 2. Einführung in In command
- (1) Schauen wir uns die grundlegenden Informationen des ln-Befehls an:
- (2) Grundformat des ln-Befehls
- 3. Erstellen Sie einen Hardlink
- (1) So erstellen Sie einen Hardlink
- (2) Hardlink-Funktionen
- (3) Prinzip der harten Verbindung
- 4. Erstellen Sie einen Softlink
- (1) So erstellen Sie einen Softlink
- (2) Softlink-Eigenschaften
- (3) Soft-Connection-Prinzip
- (4) Beschreibung
Tipp: Lassen Sie uns zunächst die grundlegende Speicherung von Dateien und Verzeichnissen im Linux-System erläutern, damit wir Hardlinks und Softlinks im Linux-System leichter verstehen und lernen können. 1. Grundlegende Speicherung von Dateien und Verzeichnissen Wir haben bereits über Partitionen gesprochen. Jede Partition kann als in zwei Teile unterteilt verstanden werden. Ein kleiner Teil speichert die i Node-Informationen der Datei und ein großer Teil speichert die Block . Zu den im I-Node einer Datei gespeicherten Informationen gehören: i Node-Nummer, Zeit, Berechtigungen und Speicherort. Block speichert die Daten in der Datei. Jeder Ordner verfügt über i Node und eine entsprechende Block . Es stellt sich jedoch die Frage, wo der Dateiname einer Datei gespeichert wird. Nehmen wir als Beispiel eine Datei abc im root . Der Dateipfad ist /root/abc . Im root haben alle Dateien i Node-Namen und entsprechende Block , und root Stammverzeichnis hat auch seine eigenen i Node-Informationen. Überall, wo es i Node-Informationen gibt, gibt es einen entsprechenden Block . Die im Block des root gespeicherten Daten sind die Dateinamen aller Unterdateien und Unterverzeichnisse unter root Stammverzeichnis und die entsprechende i Node-Nummer. Mit anderen Worten, der Dateiname der Datei im root wird nicht in den i Node der Datei geschrieben. Stattdessen wird es in Block Blockblock des übergeordneten Verzeichnisses geschrieben. Wenn ich den Dateinamen der abc Datei finden möchte, muss ich zuerst den i Knoten root finden und dann den abc Dateinamen und die entsprechende i Knotennummer im Block root finden. Das Auslesen der Daten in der abc Datei erfolgt schließlich über die i -Node-Nummer der abc Datei. Wo wird der Dateiname oder i -Node root gespeichert? Das root befindet sich unter dem Stammverzeichnis. Das Stammverzeichnis verfügt über eigene i Node-Informationen und einen eigenen Block . Zusammengefasst werden die Dateinamen- und i Node-Nummerninformationen des root im Block des Stammverzeichnisses abgelegt. Wie erhalte ich die i Node-Nummer dieser Wurzel? Die Stamm- i -Knotennummer ist fest und die Stamm- i Knotennummer ist 2. (Weil Nummer 1 belegt ist, wenn der Systemkernel geladen wird)
[root@192 ~]# ls -ild /
2 dr-xr-xr-x. 25 root root 4096 27. Dezember 22:27 /
Die erste angezeigte Ziffer ist die I-Node-Nummer. Zusammenfassen Zusammenfassend lässt sich sagen, dass Sie zum Anzeigen des Inhalts der abc Datei zuerst die Daten im Block mithilfe der Stamm- i Node-Nummer lesen, root i Node-Informationen des Stammverzeichnisses suchen, root Block des Stammverzeichnisses lesen, die I-Node-Informationen der abc Datei suchen und die Block abc Datei lesen müssen. Das Obige ist die grundlegende Speicherung von Dateien und Verzeichnissen. 2. Einführung in In command (1) Schauen wir uns die grundlegenden Informationen des ln-Befehls an: Die ursprüngliche Bedeutung von ln im Englischen: make links between file Speicherortpfad: /bin/ln Ausführungsberechtigung: alle Benutzer. Funktionsbeschreibung: Verknüpfungen zwischen Dateien herstellen. (2) Grundformat des ln-Befehls
[root@localhost ~] # ln [Optionen] Quelldatei Zieldatei Optionen:
-s: Erstellt eine Softlink-Datei. Wenn die Option „-s“ nicht hinzugefügt wird, wird eine Hardlink-Datei erstellt. -f: erzwungen. Wenn die Zieldatei bereits vorhanden ist, löschen Sie die Zieldatei und erstellen Sie dann die Linkdatei. 3. Erstellen Sie einen Hardlink (1) So erstellen Sie einen Hardlink Hier ist ein Beispiel:
[root@localhost ~] # Berührungs-Cangls
[root@localhost ~ ]# ln /root/cangls /tmp/
# Erstellen Sie eine Hardlink-Datei. Die Zieldatei hat keinen Dateinamen, sodass sie mit der Originaldatei übereinstimmt. # Das heißt, /root/cangls und /tmp/cangls sind Hardlink-Dateien. Beschreibung ln -Befehlsanwendung:
# Erstelle eine neue Datei abc und überprüfe die Anzahl der Hardlinks der abc-Datei [root@192 ~]# touch abc
[root@192 ~]# ls -il abc
1043285 -rw-r--r--. 1 Wurzel Wurzel 0 29. Dezember 18:18 abc
# Sie können sehen, dass die Anzahl der Hardlinks der abc-Datei 1 ist.
# Erstellen Sie eine Hardlink-Datei für die abc-Datei im temporären Verzeichnis und überprüfen Sie dann die Anzahl der Hardlinks zwischen den beiden Dateien.
[root@192 ~]# ln abc /tmp/abc_h
[root@192 ~]# ls -il abc /tmp/abc_h
1043285 -rw-r--r--. 2 Wurzel Wurzel 0 29. Dezember 18:18 abc
1043285 -rw-r--r--. 2 root root 0 29. Dezember 18:18 /tmp/abc_h
# Sie können sehen, dass der Referenzzähler (Anzahl der Hardlinks) der abc-Datei um 1 gestiegen ist.
# Sie können auch sehen, dass die I-Node-Nummern der beiden obigen Dateien gleich sind. (2) Hardlink-Funktionen Die Quelldatei und die Hardlink-Datei haben denselben Inode und Block . Durch Ändern einer der Dateien wird auch die andere geändert. Löschen Sie eine der Dateien, dann ist die andere wieder verfügbar. Hardlinks sind nicht eindeutig gekennzeichnet und es ist schwierig, den Speicherort von Hardlink-Dateien zu bestätigen (es ist schwierig festzustellen, ob es sich um eine Hardlink-Datei handelt. Wenn Sie sie selbst erstellt haben, erinnern Sie sich vielleicht noch daran, aber wenn sie von jemand anderem erstellt wurde, kann ich nicht feststellen, ob es sich bei einer Datei überhaupt um eine Hardlink-Datei handelt). Die Verwendung wird nicht empfohlen. Hardlinks können keine Verzeichnisse verknüpfen. Hardlinks können nicht Partitionen überschreiten (da zwei Dateien die gleiche i Node-Nummer derselben Partition benötigen. Sie können also nicht partitionsübergreifend gefunden werden). (3) Prinzip der harten Verbindung Ich habe oben im root eine abc Datei erstellt und dann eine abc Datei-Hardlink-Datei abc_h im Verzeichnis /tmp/ erstellt. root Stammverzeichnis, abc Datei und tmp Verzeichnis haben jeweils eine eigene i Node-Nummer und einen entsprechenden Block . Suchen Sie den entsprechenden Block über die I-Node-Nummer root Stammverzeichnisses. Block zeichnet den Namen und i Node-Nummer der abc Datei auf, sodass Sie die abc Datei finden können. i Node-Nummer und der Dateiname der fest verknüpften Datei abc_h werden im Block tmp Verzeichnisses aufgezeichnet. Und die i Node-Nummer der abc Datei und abc_h Hardlink-Datei ist identisch, sodass die i Node-Nummer der abc Datei auch über die abc_h Informationen im Block von tmp gefunden werden kann. Daher verweisen sowohl die im root aufgezeichneten abc Dateiinformationen als auch die im tmp Verzeichnis aufgezeichneten abc_h Dateiinformationen auf die abc Datei im root . Siehe das Bild unten: 
Die obige Abbildung beweist also Folgendes: Durch Ändern einer der Dateien wird auch die andere geändert. Löschen Sie eine der Dateien, dann ist die andere wieder verfügbar. 4. Erstellen Sie einen Softlink (1) So erstellen Sie einen Softlink Softlinks können im Windows-System direkt als Verknüpfungen angesehen werden. Erstellen Sie eine Softlink-Datei wie folgt:
[root@localhost ~]# berühren abc
[root@localhost ~]# ln -s /root/abc /tmp/ cde Datei im root und erstellen Sie dann einen Softlink zur Datei /tmp/cde_s um diese beiden Dateien anzuzeigen. Wie in der folgenden Abbildung dargestellt:
[root@localhost ~ ]# cde berühren
[root@localhost ~ ] # ln -s /root/cde /tmp/cde_s
[root@localhost ~ ] # ls -il /root/cde /tmp/cde_s
1055972-rw-r--r--1 root root 0 Februar 1715:30 /root/cde
261634 1rwxrwxrwx 1root root 9. Februar 1715:30 /tmp/cde_s->/root/cde veranschaulichen: Erstens: Sie können sehen, dass die erstellte Softlink-Datei einen klaren Hinweis darauf enthält, dass es sich um eine Softlink-Datei handelt und wo sich ihre Quelldatei befindet. /tmp/cde_s->/root/cde . Aus diesem Grund sind Hardlinks nicht eindeutig gekennzeichnet. Zweitens: Die Anzahl der Zitatlinks zur Datei hat nicht zugenommen. Drittens: Die I-Node-Nummern der beiden Dateien sind völlig unterschiedlich. Viertens: Die Quelldatei abc ist 0 Bytes groß und leer. Die Dateigröße des Softlinks beträgt 9 Bytes. (2) Softlink-Eigenschaften Softlinks und Quelldateien haben unterschiedliche Inode und Block . Wenn Sie eine der Dateien ändern, wird auch die andere geändert. Wenn Sie den Softlink löschen, hat dies keine Auswirkungen auf die Quelldatei. Wenn Sie die Quelldatei löschen, kann der Softlink nicht verwendet werden, da der Softlink keine tatsächlichen Daten enthält und nur Inode der Quelldatei speichert. Unabhängig davon, wie groß die Quelldatei ist, bleibt die Größe der Softlink-Datei unverändert. Der Softlink hat die maximale Berechtigung lrwxrwxrwx . Da jedoch keine tatsächlichen Daten vorhanden sind, müssen für den endgültigen Zugriff die Berechtigungen der Quelldatei referenziert werden. Softlinks können Verzeichnisse verknüpfen und Partitionen überschreiten. Die Softlink-Funktion ist offensichtlich und es wird empfohlen, Softlinks zu verwenden. (3) Soft-Connection-Prinzip Im root befindet sich eine cde Datei, und im tmp Verzeichnis wird eine Softlink-Datei cde_s der cde Datei erstellt. Der block des root kann über die i Node-Nummer root gefunden werden. block des root zeichnet den Dateinamen und i Node-Nummer der cde Datei auf. Indem Sie die i Node-Nummer der cde Datei ermitteln, können Sie block der cde Datei finden und die darin enthaltenen Daten lesen. Das tmp Verzeichnis hat seine eigene i Knotennummer und den entsprechenden block . block des tmp Verzeichnisses enthält den Dateinamen und i Knotennummer der Datei cde_s (wie bereits erwähnt, sind die beiden i Knotennummern des Hardlinks gleich, sie verweisen also auf dieselbe Datei), während i Knotennummern der Softlink-Datei und der Quelldatei unterschiedlich sind. Dies bedeutet, dass die cde_s Datei über eine eigene i Node-Nummer und cde_s eigenen block verfügt. Der Schlüssel ist nun, was ist block Block der cde_s Datei gespeichert? Wenn darin Daten gespeichert sind, werden die cde Datei und die cde_s Datei nicht verknüpft, sondern vollständig kopiert. Auf diese Weise tritt die Situation nicht auf, dass sich die Softlink-Datei ändert, wenn die Quelldatei geändert wird, und die Quelldatei nicht geändert wird, nachdem die Softlink-Datei geändert wurde. Tatsächlich wird die i Node-Nummer der Quelldatei im block der cde_s Datei gespeichert. Wie unten dargestellt: 
Dies erklärt auch, warum die neu erstellte Softlink-Datei nach der Erstellung Daten enthält und sich die Datengröße mit der Änderung der Quelldatei nicht ändert. Ein weiterer zu beachtender Punkt ist, dass die Softlink-Datei die größten Berechtigungen hat, diese Berechtigung gilt jedoch für die Softlink-Datei. block der Softlink-Datei speichert keine Daten. Wenn Sie die Quelldatei bedienen möchten, müssen Sie sich dennoch die Berechtigungen der Quelldatei ansehen. Dies erfordert Aufmerksamkeit. (4) Beschreibung Unter Windows werden Verknüpfungen erstellt, weil die Software zu tief installiert und schwer zu finden ist. Daher wird eine Verknüpfung auf dem Desktop erstellt. Was ist der Zweck der Erstellung von Softlinks unter Linux? Der Zugriff auf sie erfolgt ohnehin alle über Verzeichnisse? In Linux-Systemen besteht die Hauptfunktion von Softlinks darin, die Nutzungsgewohnheiten des Administrators zu berücksichtigen. Wie unten dargestellt: 
Im alten Linux-System sind wir an den Speicherort der Datei /etc/rc.local gewöhnt. Nach der Aktualisierung des Systems wird der Speicherort der Datei /etc/rc.local entsprechend den Upgrade-Anforderungen geändert. Wir haben große Schwierigkeiten, diese Datei zu finden. Die Lösung für dieses Problem besteht darin, für diese beiden Dateien einen Softlink zu erstellen, um das oben genannte Problem zu lösen und dabei sowohl den Upgrade-Bedarf als auch die Nutzungsgewohnheiten zu berücksichtigen. Beachten Sie auch, dass ein relativer Pfad verwendet wird, um einen Softlink zur def Datei zu erstellen, und ein absoluter Pfad verwendet wird, um einen Softlink zur Datei anaconda-ks.cfg zu erstellen. 
Aus der obigen Abbildung können Sie ersehen, dass beim Erstellen eines Softlinks mit einem relativen Pfad ein Fehler auftritt. Tipp: Achten Sie beim Erstellen eines Softlinks darauf, einen absoluten Pfad zu verwenden, bei einem Hardlink ist dies nicht erforderlich. Dies ist das Ende dieses Artikels mit der detaillierten Erklärung von Softlinks und Hardlinks in Linux. Weitere relevante Inhalte zu Linux-Softlinks und Hardlinks finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:- Detaillierte Erklärung der Linux-Softlinks und Hardlinks
|