9 Der Unterschied zwischen ln & cp

Dateien und Verzeichnisse werden in dieser Struktur, die als Dateisystem bezeichnet wird, organisiert und verwaltet. Jede Datei und jedes Verzeichnis haben eine eindeutige Identifikationsnummer, die als Inode bezeichnet wird. Diese Inodes enthalten Metadaten wie Benutzer- und Gruppenzugehörigkeit, Berechtigungen, Zeitstempel und den physischen Speicherort der Dateidaten auf der Festplatte.

Sowohl der ln- als auch der cp-Befehl dienen dazu, vorhandene Dateien oder Verzeichnisse an einem anderen Speicherort verfügbar zu machen, allerdings auf unterschiedliche Weise.

  1. ln (link)

Der ln-Befehl erstellt einen Link, also eine Verknüpfung, zu einer bestehenden Datei oder einem Verzeichnis. Es gibt zwei Arten von Links: Hardlinks und symbolische Links (Symlinks).

Hardlinks

Ein Hardlink ist ein direkter Zeiger auf die Dateidaten auf der Festplatte. Wenn ein Hardlink zu einer Datei erstellt wird, teilen sich die ursprüngliche Datei und der Hardlink denselben Inode und damit die gleichen Dateidaten. Aus technischer Sicht gibt es keinen Unterschied zwischen der ursprünglichen Datei und dem Hardlink – sie sind völlig gleichberechtigt. Änderungen an einer der beiden Dateien wirken sich auf die andere aus, da sie auf dieselben Dateidaten zeigen.

Hardlinks haben einige Einschränkungen:

Um einen Hardlink zu erstellen, verwendet man den Befehl ln mit dem Ursprungspfad und dem gewünschten Linkpfad:

ln /pfad/zur/ursprünglichen/datei /pfad/zum/neuen/hardlink

Symbolische Links (Symlinks)

Ein symbolischer Link, oft auch als “soft link” oder einfach “symlink” bezeichnet, ist eine spezielle Datei, die den Pfad zur eigentlichen Datei oder dem Verzeichnis enthält. Im Gegensatz zu Hardlinks haben symbolische Links ihre eigenen Inodes und zeigen nicht direkt auf die Dateidaten, sondern auf den Pfad der verlinkten Datei oder des verlinkten Verzeichnisses.

Symbolische Links haben einige Vorteile gegenüber Hardlinks:

Um einen symbolischen Link zu erstellen, verwendet man den Befehl ln mit der Option -s (symbolic), gefolgt vom Ursprungspfad und dem gewünschten Linkpfad:

ln -s /pfad/zur/ursprünglichen/datei /pfad/zum/neuen/symlink

2. cp (copy)

Der cp-Befehl erstellt eine Kopie einer Datei oder eines Verzeichnisses. Im Gegensatz zu Links wird hier eine separate, eigenständige Kopie der Daten angelegt. Die kopierte Datei oder das kopierte Verzeichnis ist unabhängig vom Original und hat eine eigene Inode-Nummer.

Beim Kopieren einer Datei wird der vollständige Dateiinhalt an den neuen Speicherort kopiert. Bei Verzeichnissen werden sowohl das Verzeichnis selbst als auch alle darin enthaltenen Dateien und Unterverzeichnisse rekursiv kopiert.

Um eine Datei zu kopieren, verwendet man den Befehl cp mit dem Ursprungspfad und dem gewünschten Zielpfad:

cp /pfad/zur/ursprünglichen/datei /pfad/zum/ziel

Für das Kopieren von Verzeichnissen muss die Option -r (recursive) hinzugefügt werden, um alle Inhalte rekursiv zu kopieren:

cp -r /pfad/zum/ursprünglichen/verzeichnis /pfad/zum/ziel

Es ist wichtig zu beachten, dass beim Kopieren einer Datei oder eines Verzeichnisses eine vollständig neue Instanz erstellt wird, die unabhängig vom Original ist. Änderungen an der Kopie haben keine Auswirkungen auf das Original und umgekehrt. Außerdem belegt eine Kopie den vollen Speicherplatz der kopierten Daten, während Links nur wenig zusätzlichen Speicherplatz für die Verknüpfungsinformationen benötigen.

Anwendungsszenarien

Sowohl Links als auch Kopien haben ihre spezifischen Anwendungsszenarien:

Links:

Kopien:

Zusammenfassend bieten Links und Kopien unterschiedliche Möglichkeiten, um Dateien und Verzeichnisse in Linux zu verwalten und zu organisieren. Links ermöglichen eine effiziente Verwaltung von Verknüpfungen, während Kopien unabhängige Instanzen erstellen. Die Wahl zwischen ln und cp hängt von den spezifischen Anforderungen und Zielen ab, die man in einer bestimmten Situation verfolgt.

9.0.1 ChangeMod

Der Befehl chmod steht für “change mode” und wird in UNIX/Linux-basierten Betriebssystemen verwendet, um die Zugriffsrechte für Dateien zu ändern.

Es gibt drei Arten von Berechtigungen, die auf jede Benutzerklasse angewendet werden können:
Lesen (r)
Schreiben (w)
Ausführen (x)
Diese Berechtigungen können auf drei verschiedene Benutzerklassen angewendet werden:

Der Dateibesitzer (UiD)
Die Gruppenmitglieder (GiD)
Alle Anderen (O)

Hier sind einige Beispiele, wie der chmod-Befehl verwendet werden kann:
chmod u+r datei.txt: Dieser Befehl gibt dem Benutzer (u) Leseberechtigung für die Datei datei.txt.
chmod g-w datei.txt: Dieser Befehl entzieht der Gruppe (g) die Schreibberechtigung (w) für die Datei datei.txt.
chmod go-w datei.txt: Dieser Befehl entzieht der Gruppe(g) und allen Anderen(o) die Schreibberechtigung(w).