Sowohl `CP` (Copy) als auch" Ln` (Link) sind UNIX -Befehle, mit denen zusätzliche Möglichkeiten zum Zugriff auf Dateien erstellt werden, dies jedoch auf grundlegend unterschiedliche Weise. Das Verständnis dieses Unterschieds ist entscheidend, um unerwartetes Verhalten zu vermeiden.
`cp` (Kopie):
* erstellt ein Duplikat: `cp` erstellt eine vollständig separate Kopie der Datei. Diese Kopie nimmt seinen eigenen Raum auf der Festplatte ein. Änderungen an der Originaldatei wirken sich nicht auf die Kopie und umgekehrt aus.
* Dateigröße: Die kopierte Datei hat die gleiche Größe wie das Original.
* Metadaten: Während einige Metadaten (wie Berechtigungen und Zeitstempel) kopiert werden könnten, ist dies nicht immer eine perfekte Replikation. Die Inode -Nummer (ein eindeutiger Kennung für eine Datei im Dateisystem) ist unterschiedlich.
* Verwendung: Verwenden Sie `cp`, wenn Sie eine unabhängige, separate Version einer Datei benötigen. Wenn Sie einen ändern, bleibt der andere unberührt.
`ln` (Link):
* erstellt einen Zeiger: `ln` erstellt einen Link, der im Wesentlichen ein Zeiger auf die Originaldatei ist. Es erstellt keine neue Kopie der Daten. Stattdessen erstellt es einen neuen Verzeichniseintrag, der auf denselben Inode wie die Originaldatei hinweist.
* Dateigröße: Der Link selbst nimmt sehr wenig Speicherplatz ein. Die Größe ist im Wesentlichen die Größe des Namens des Links.
* Metadaten: Der Link erbt einige Metadaten aus der Originaldatei.
* Zwei Arten von Links:
* Harte Links: Kann nur für Dateien (nicht für Verzeichnisse) erstellt werden, und mehrere harte Verknüpfungen weisen alle auf dieselben Daten hin. Wenn Sie einen harten Link löschen, löschen Sie die Originaldaten nicht, es sei denn, * alle * harten Links werden gelöscht.
* Symbolische Links (weiche Links): Kann auf Dateien * oder * Verzeichnisse verweisen. Sie enthalten den Pfad zur Originaldatei. Das Löschen eines symbolischen Links hat keinen Einfluss auf die Originaldatei. Wenn die Originaldatei verschoben oder gelöscht wird, wird der symbolische Link gebrochen.
Hier ist eine Tabelle, in der die wichtigsten Unterschiede zusammengefasst sind:
| Feature | `CP` (Kopie) | `ln` (link) |
| ---------------- | ---------------------- | ------------------ |
| Aktion | Erstellt ein Duplikat | Erstellt einen Zeiger |
| Speicherplatz | Verwendet zusätzlichen Raum | Minimaler zusätzlicher Raum |
| Datenänderung | Unabhängige Kopien | Änderungen beeinflussen alle Links (harte Links) |
| Dateilöschung | Das Löschen einer Kopie betrifft andere nicht | Löschen aller harten Links löscht Daten; Symbolische Links werden gebrochen |
| Dateityp | Funktioniert zu Dateien und Verzeichnissen | Harte Links:nur Dateien; Symbolische Links:Dateien und Verzeichnisse |
Beispiel:
Angenommen, Sie haben eine Datei namens "mydocument.txt".
* `cp mydocument.txt mydocument_copy.txt` erstellt eine vollständig separate Kopie.
* `ln mydocument.txt mydocument_link` erstellt einen harten Link. Sowohl "mydocument.txt" als auch `mydocument_link` beziehen sich auf dieselben Daten.
* `ln -s mydocument.txt mydocument_symlink` erstellt einen symbolischen Link. `mydocument_symlink` zeigt auf` mydocument.txt`.
Im Wesentlichen:Verwenden Sie `cp`, wenn Sie eine echte Kopie benötigen. Verwenden Sie "ln", wenn Sie mehrere Namen auf die gleichen Daten (harte Links) oder eine bequeme Verknüpfung (symbolische Links) zeigen möchten. Wählen Sie den Befehl aus, der Ihren Anforderungen am besten entspricht, basierend darauf, ob Sie unabhängige Kopien oder effiziente Referenzierung benötigen.