Heim > System-Tutorial > LINUX > Hauptteil

Beispiele zur Erläuterung der Erstellung von Hardlinks und Softlinks in Linux-Systemen

PHPz
Freigeben: 2024-02-12 12:48:27
nach vorne
543 Leute haben es durchsucht

Linux-Links werden in zwei Typen unterteilt: Einer wird als Hardlink und der andere als symbolischer Link bezeichnet. Standardmäßig generiert der Befehl ln Hardlinks. Der Unterschied zwischen Hardlinks und Softlinks beginnt im Wesentlichen beim Inode-Knoten. Im Folgenden finden Sie Beispiele für die Erstellung von Hardlinks und Softlinks in Linux-Systemen, um die Unterschiede zwischen den beiden Linktypen in Linux zu erkennen.

Beispiele zur Erläuterung der Erstellung von Hardlinks und Softlinks in Linux-Systemen

Zunächst müssen wir verstehen, dass im Linux-System der Kernel jeder neu erstellten Datei einen Inode (Indexknoten) zuweist und jede Datei eine eindeutige Inode-Nummer hat. Dateiattribute werden im Indexknoten gespeichert. Beim Zugriff auf die Datei wird der Indexknoten in den Speicher kopiert, wodurch ein schneller Zugriff auf die Datei erreicht wird.

Links sind eine Methode zum Herstellen einer Verbindung zwischen einer freigegebenen Datei und mehreren Verzeichniseinträgen des Benutzers, der darauf zugreift. Linux umfasst zwei Arten von Links: Hard Link und Soft Link. Soft Link wird auch als symbolischer Link bezeichnet.

Harter Link

Um es ganz klar auszudrücken: Ein Hardlink ist ein Zeiger, der auf den Dateiindexknoten zeigt. Das System weist den Inode dafür nicht neu zu. Mit dem Befehl :ln können Sie einen Hardlink erstellen. Grammatik:

ln [options] existingfile newfile
ln[options] existingfile-list directory
Nach dem Login kopieren

Verwendung: Die erste Methode: Erstellen Sie einen Hardlink für „existingfile“ und der Dateiname ist „newfile“. Zweitens: Erstellen Sie im Verzeichnis „directory“ einen Hardlink mit demselben Namen für alle in „existingfile-list“ enthaltenen Dateien. Häufig verwendete optionale [Optionen] -f erstellt einen Link, unabhängig davon, ob „newfile“ existiert oder nicht. -n Wenn „newfile“ bereits existiert, wird kein Link erstellt. Das Beispiel sieht wie folgt aus:

$ ls –il

13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2
$ ln file2 file2hard
$ ls –il

13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
Nach dem Login kopieren

Hinweis:
Vor dem Erstellen des Links beträgt die Anzahl der in Datei1 angezeigten Links 1
Nach dem Erstellen des Links beträgt (1) die Anzahl der Links für Datei1 und Datei1hard 2; (2) die Inode-Nummern von Datei1 und Datei1hard sind gleich; (3) die von Datei1 und Datei1hard angezeigten Dateigrößen sind ebenfalls gleich;
Es ist ersichtlich, dass das Operationsergebnis des Befehls ln lautet: Datei1 und Datei1hard sind zwei Namen derselben Datei. Sie haben die gleiche Indexknotennummer und die gleichen Dateiattribute. Das Erstellen einer festen Verknüpfung zur Datei Datei1 bedeutet, dass der Dateiindexknoten von Datei1 befindet sich im aktuellen Verzeichnis. Erstellen Sie einen neuen Zeiger.

Beispiele zur Erläuterung der Erstellung von Hardlinks und Softlinks in Linux-Systemen

Die Anzahl der Links wird gleichzeitig um eins reduziert, d. h. die Anzahl der Links wird auf 0 reduziert, und der Kernel löscht den Dateiinhalt von der Festplatte. Die aktuelle logische Struktur des Verzeichnisses: (Das Bild wird leider nicht angezeigt).

Sie können auch feste Links zu Dateien in verschiedenen Verzeichnissen, aber im selben Dateisystem erstellen. Gehen Sie davon aus, dass sich Datei1 und Datei2 im Verzeichnis /home/longcheng/dir1 befinden. Der folgende Befehl erstellt einen festen Link zu Datei2 in /home/longcheng.

ln file2 /home/longcheng/file2hard
Nach dem Login kopieren

Das folgende Programm dient zum Erstellen von Hardlinks für alle Dateien im Verzeichnis dir1 im Verzeichnis dir2

$mkdir dir2
$ln /home/longcheng/dir1/* /home/longcheng/dir2
Nach dem Login kopieren

Wenn ln -f existentfile newfile verwendet wird und newfile bereits existiert, hat unabhängig von der Datei newfile nur der aktuelle Benutzer Schreibberechtigung dafür, und newfile wird zu einer Hardlink-Datei von exitngfile.

Obwohl Hardlinks Platz sparen und die traditionelle Art der Integration von Dateisystemen in Linux-Systeme sind, gibt es einige Mängel:
(1) Es können keine Verknüpfungen zwischen Dateien in verschiedenen Dateisystemen hergestellt werden
(2) Nur Superuser können Hardlinks für Verzeichnisse erstellen. Obwohl viele Bäume sagen, dass Root-Benutzer erstellen können, hat der Autor während des Lernprozesses festgestellt, dass selbst Root-Benutzer nicht erstellen können, und ich habe Kernel 2.4 und 2.6 ausprobiert. Ich weiß nicht, ob dies in anderen Systemen möglich ist .

Softlink (symbolischer Link)

Soft-Links überwinden die Nachteile von Hard-Links und unterliegen keinen Dateisystembeschränkungen. Jeder Benutzer kann einen symbolischen Link erstellen, der auf ein Verzeichnis verweist. Dadurch ist es heute weiter verbreitet, bietet eine größere Flexibilität und kann sogar Dateien über verschiedene Maschinen und verschiedene Netzwerke hinweg verknüpfen.

Um einen Softlink zu erstellen, fügen Sie einfach die Option -s nach ln hinzu. Das Beispiel sieht wie folgt aus:

$ ls -il

13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
$ln –s file1 file1soft
$ls -il

13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1
Nach dem Login kopieren
Beispiele zur Erläuterung der Erstellung von Hardlinks und Softlinks in Linux-Systemen

Anhand der obigen Linkergebnisse können wir erkennen, dass der Unterschied zwischen Softlinks und Hardlinks nicht nur im Konzept, sondern auch in der Implementierung liegt.

Unterschied:
Die Hardlink-Originaldatei und die verknüpfte Datei haben eine gemeinsame Inode-Nummer, was darauf hinweist, dass es sich um dieselbe Datei handelt, während die Softlink-Originaldatei und die verknüpfte Datei unterschiedliche Inode-Nummern haben, was darauf hinweist, dass es sich um zwei verschiedene Dateien handelt.
In den Dateiattributen gibt der Softlink eindeutig an, dass es sich um eine Linkdatei handelt, der Hardlink jedoch nicht, da die Hardlinkdatei und die Originaldatei im Wesentlichen eine völlig gleiche Beziehung haben.
Die Anzahl der Links ist unterschiedlich, die Anzahl der Softlinks erhöht sich nicht; die Dateigröße ist unterschiedlich, die Größe der angezeigten Hardlink-Datei ist dieselbe wie die der Originaldatei.

Kurz gesagt bedeutet das Erstellen eines Softlinks, dass eine neue Datei erstellt wird. Wenn auf eine verknüpfte Datei zugegriffen wird, stellt das System fest, dass es sich um eine verknüpfte Datei handelt, und liest die verknüpfte Datei, um die Datei zu finden, auf die tatsächlich zugegriffen werden soll. Natürlich haben Softlinks auch Nachteile, die Hardlinks nicht haben, da die Linkdatei die Pfadinformationen der Originaldatei enthält. Wenn also die Originaldatei von einem Verzeichnis in ein anderes verschoben wird und erneut auf die Linkdatei zugegriffen wird, wird die Das System kann es nicht finden, während der feste Link es nicht findet. Ohne diesen Fehler können Sie es nach Belieben verschieben. Außerdem muss das System zusätzlichen Speicherplatz für die Erstellung neuer Indexknoten und das Speichern des Pfads der Originaldatei zuweisen.

Das obige ist der detaillierte Inhalt vonBeispiele zur Erläuterung der Erstellung von Hardlinks und Softlinks in Linux-Systemen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!