Linux ln-Befehl mit praktischen Beispielen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du über den Linux-Befehl ln und seine praktischen Anwendungen bei der Erstellung von hartverknüpften und symbolischen Verknüpfungen. Das Lab behandelt den Zweck des ln-Befehls, wie hartverknüpfte Verknüpfungen erstellt werden und wie symbolische Verknüpfungen erstellt werden. Du wirst die Unterschiede zwischen diesen beiden Arten von Verknüpfungen und ihre Anwendungsfälle verstehen. Das Lab bietet Schritt-für-Schritt-Anleitungen und Beispiele, um dir zu helfen, den ln-Befehl und seine Datei- und Verzeichnisverwaltungsmöglichkeiten in Linux zu meistern.

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/BasicFileOperationsGroup -.-> linux/ln("Link Creating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-422760{{"Linux ln-Befehl mit praktischen Beispielen"}} linux/rm -.-> lab-422760{{"Linux ln-Befehl mit praktischen Beispielen"}} linux/ln -.-> lab-422760{{"Linux ln-Befehl mit praktischen Beispielen"}} linux/cat -.-> lab-422760{{"Linux ln-Befehl mit praktischen Beispielen"}} end

Das Verständnis des Zwecks des ln-Befehls

In diesem Schritt wirst du über den Zweck des ln-Befehls in Linux lernen. Der ln-Befehl wird verwendet, um Verknüpfungen zu erstellen, die spezielle Dateien sind, die auf andere Dateien oder Verzeichnisse verweisen. Es gibt zwei Arten von Verknüpfungen: hartverknüpfte Verknüpfungen und symbolische (weiche) Verknüpfungen.

Hartverknüpfungen werden mit dem ln-Befehl ohne zusätzliche Optionen erstellt. Hartverknüpfungen sind im Wesentlichen Kopien der ursprünglichen Datei, aber sie teilen die gleiche Inode (Dateimetaangaben) und den gleichen physischen Speicherort. Dies bedeutet, dass Änderungen am Dateiinhalt in allen hartverknüpften Verknüpfungen widergespiegelt werden.

Um eine hartverknüpfte Verknüpfung zu erstellen, führe den folgenden Befehl aus:

ln original_file hard_link_name

Beispielausgabe:

$ ln file1.txt file1_hardlink.txt

Symbolische Verknüpfungen, auch als weiche Verknüpfungen bekannt, werden mit der -s-Option und dem ln-Befehl erstellt. Symbolische Verknüpfungen sind Zeiger auf die ursprüngliche Datei oder das Verzeichnis, und sie enthalten den Pfad zum Ziel. Im Gegensatz zu hartverknüpften Verknüpfungen können symbolische Verknüpfungen auf Dateien oder Verzeichnisse über Dateisystemgrenzen verweisen.

Um eine symbolische Verknüpfung zu erstellen, führe den folgenden Befehl aus:

ln -s original_file symbolic_link_name

Beispielausgabe:

$ ln -s file1.txt file1_symlink.txt

Der Hauptunterschied zwischen hartverknüpften und symbolischen Verknüpfungen besteht darin, dass hartverknüpfte Verknüpfungen eng mit der ursprünglichen Datei verknüpft sind, während symbolische Verknüpfungen flexibler sind und auf Dateien oder Verzeichnisse über das Dateisystem verweisen können.

Das Erstellen von hartverknüpften Verknüpfungen mit dem ln-Befehl

In diesem Schritt wirst du lernen, wie hartverknüpfte Verknüpfungen mit dem ln-Befehl erstellt werden.

Zunächst erstellen wir eine Beispieldatei, die wir für das Erstellen von hartverknüpften Verknüpfungen verwenden werden:

touch file1.txt
echo "This is the original file." > file1.txt

Jetzt erstellen wir eine hartverknüpfte Verknüpfung zu file1.txt mit dem ln-Befehl:

ln file1.txt file1_hardlink.txt

Der ln-Befehl ohne zusätzliche Optionen erstellt eine hartverknüpfte Verknüpfung. Dies bedeutet, dass file1_hardlink.txt und file1.txt jetzt die gleiche Inode (Dateimetaangaben) und den gleichen physischen Speicherort teilen. Jede Änderung, die an einer Datei vorgenommen wird, wird in der anderen widergespiegelt.

Lassen Sie uns überprüfen, ob die hartverknüpfte Verknüpfung korrekt erstellt wurde:

ls -l file1.txt file1_hardlink.txt

Beispielausgabe:

-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1.txt
-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1_hardlink.txt

Beachten Sie, dass beide Dateien die gleiche Inodenummer haben (die "2" in der zweiten Spalte), was darauf hindeutet, dass es sich um hartverknüpfte Verknüpfungen zur selben Datei handelt.

Jetzt machen wir eine Änderung an der ursprünglichen Datei und sehen, wie sich dies auf die hartverknüpfte Verknüpfung auswirkt:

echo "This is an updated file." > file1.txt
cat file1.txt file1_hardlink.txt

Beispielausgabe:

This is an updated file.
This is an updated file.

Wie Sie sehen können, werden die Änderungen, die an file1.txt vorgenommen wurden, in der hartverknüpften Verknüpfung file1_hardlink.txt widergespiegelt.

Hartverknüpfte Verknüpfungen sind nützlich, wenn Sie mehrere Verweise auf die gleiche Datei erstellen möchten, ohne zusätzlichen Speicherplatz zu verbrauchen. Denken Sie jedoch daran, dass hartverknüpfte Verknüpfungen nicht über Dateisystemgrenzen hinausgehen können und dass sie für Verzeichnisse nicht erstellt werden können.

Das Erstellen von symbolischen Verknüpfungen mit dem ln-Befehl

In diesem Schritt wirst du lernen, wie symbolische (weiche) Verknüpfungen mit dem ln-Befehl erstellt werden.

Zunächst erstellen wir eine weitere Beispieldatei, die wir für das Erstellen von symbolischen Verknüpfungen verwenden werden:

touch file2.txt
echo "This is the second file." > file2.txt

Jetzt erstellen wir eine symbolische Verknüpfung zu file2.txt mit dem ln-Befehl und der -s-Option:

ln -s file2.txt file2_symlink.txt

Die -s-Option告诉ln命令创建一个符号链接而不是硬链接。

Lassen Sie uns überprüfen, ob die symbolische Verknüpfung korrekt erstellt wurde:

ls -l file2.txt file2_symlink.txt

Beispielausgabe:

-rw-r--r-- 1 labex labex 23 Apr 12 12:34 file2.txt
lrwxrwxrwx 1 labex labex  8 Apr 12 12:34 file2_symlink.txt -> file2.txt

Beachten Sie, dass die symbolische Verknüpfung file2_symlink.txt am Anfang der Berechtigungen ein "l" hat, was darauf hindeutet, dass es sich um eine symbolische Verknüpfung handelt. Die Ausgabe zeigt auch, dass file2_symlink.txt auf file2.txt verweist.

Im Gegensatz zu hartverknüpften Verknüpfungen können symbolische Verknüpfungen auf Dateien oder Verzeichnisse über Dateisystemgrenzen verweisen. Demonstrieren wir dies, indem wir eine symbolische Verknüpfung zu einem Verzeichnis erstellen:

mkdir dir1
ln -s dir1 dir1_symlink
ls -l dir1 dir1_symlink

Beispielausgabe:

drwxr-xr-x 2 labex labex 4096 Apr 12 12:34 dir1
lrwxrwxrwx 1 labex labex    5 Apr 12 12:34 dir1_symlink -> dir1

Wie Sie sehen können, ist dir1_symlink eine symbolische Verknüpfung, die auf das dir1-Verzeichnis verweist.

Symbolische Verknüpfungen sind flexibler als hartverknüpfte Verknüpfungen, da sie auf Dateien oder Verzeichnisse über Dateisystemgrenzen verweisen können. Sie können jedoch auch empfindlicher sein, da die Verknüpfung abbricht, wenn die Zieldatei oder das Zielverzeichnis verschoben oder gelöscht wird.

Zusammenfassung

In diesem Lab hast du gelernt, um welchen Zweck der ln-Befehl in Linux dient, nämlich um Verknüpfungen zu erstellen, die auf andere Dateien oder Verzeichnisse verweisen. Du hast die beiden Arten von Verknüpfungen untersucht: hartverknüpfte Verknüpfungen und symbolische (weiche) Verknüpfungen. Hartverknüpfungen sind im Wesentlichen Kopien der ursprünglichen Datei, die die gleiche Inode und denselben physischen Speicherort teilen, während symbolische Verknüpfungen Zeiger auf die ursprüngliche Datei oder das Verzeichnis sind und Dateisystemgrenzen überschreiten können. Du hast auch gelernt, wie hartverknüpfte Verknüpfungen und symbolische Verknüpfungen mit dem ln-Befehl erstellt werden.

Linux Commands Cheat Sheet