(copy files)
cp kopiert Dateien. Kopieren heißt: die Datei ist nachher physisch zweimal vorhanden.
cp hat vier Formate. Das Kommando kopiert
entweder eine Datei in eine Datei mit anderem Namen (Format 1)
oder eine oder mehrere Dateien in ein anderes Dateiverzeichnis, wobei die Kopien dieselben Dateinamen haben (Format 2).
jede Datei in der Dateihierarchie aus datei in einen im Folgenden angegebenen Zielpfad (Formate 3 und 4)
Syntax
Format 1: |
cp[ -fip] datei dateikopie |
Format 2: |
cp[ -fip] datei ... dateiverzeichnis |
Format 3: |
cp -R[ -fip] datei ... dateiverzeichnis |
Format 4: |
cp -r[ -fip] datei ... dateiverzeichnis |
Eine Datei kopieren
Kann kein Dateideskriptor für dateikopie erhalten werden (Schritt 3.a.ii.), wird versucht, unlink() für dateikopie aufzurufen. Die Bearbeitung wird fortgesetzt.
(i - interaktiv) Wenn dateikopie bereits existiert, erwartet cp eine Bestätigung, dass diese Datei überschrieben werden darf. Bestätigen Sie, wird kopiert. Jede andere Eingabe verhindert ein Überschreiben.
Die folgenden Eigenschaften jeder datei werden in der entsprechenden dateikopie dupliziert:
Können Benutzernummer oder Gruppennummer nicht dupliziert werden, so werden die Bits für die S_ISUID und S_ISGID gelöscht. Die Reihenfolge für die Duplizierung der oben genannten Eigenschaften ist nicht festgelegt. dateikopie wird nicht gelöscht, wenn diese Eigenschaften nicht beibehalten werden können.
Dateiname des Originals.
Dateiname der Kopie. Ist die Option -p nicht gesetzt, so erhält die Kopie die gleichen Zugriffsrechte wie das Original sowie die Benutzer- und Gruppennummer des Benutzers, der cp aufgerufen hat. Das Änderungsdatum wird jedoch nicht dupliziert, d.h., dass das aktuelle Datum gesetzt wird. Achtung! Wenn dateikopie ein Verweis auf eine Datei ist, bleiben alle Verweise erhalten. Der Inhalt der Datei dateikopie wird mit dem Inhalt von datei überschrieben.
Dateien in ein anderes Dateiverzeichnis kopieren
siehe Format 1
Dateiname des Originals. Sie können mehrere Namen angeben und so auf einmal mehrere Dateien kopieren. Die Kopien erhalten jeweils denselben Dateinamen wie die Originale. Achtung!
Name des Dateiverzeichnisses, in das die Kopien eingetragen werden sollen. Es darf nicht das Dateiverzeichnis sein, in dem die Originale stehen. Ist die Option -p nicht gesetzt, so erhalten die Kopien die gleichen Zugriffsrechte wie die Originale sowie die Benutzer- und Gruppennummer des Benutzers, der cp aufgerufen hat. Das Änderungsdatum wird jedoch nicht dupliziert, d.h., dass das aktuelle Datum gesetzt wird.
siehe Format 1
Kopiert Dateihierarchien. Wurde die Option -R gesetzt, so werden die folgenden Schritte durchgeführt:
Schlägt dieser Vorgang aus irgendeinem Grund fehl, so schreibt cp eine Meldung auf die Standard-Fehlerausgabe. datei wird nicht weiter bearbeitet. Gegebenenfalls werden aber noch weitere Dateien bearbeitet.
siehe Format 2
siehe Format 1
Kopiert Dateihierarchien. Die Behandlung von Gerätedateien ist implementationsabhängig. Wurde die Option -r gesetzt, so ist die Behandlung von special files implementationsabhängig.
siehe Format 2 |
Vorgehensweise
Wenn dateiverzeichnis bereits existiert und ein Verzeichnis ist, so ist der Name des Zielpfades für die einzelnen Dateien in der Dateihierarchie eine Verkettung aus dateiverzeichnis, einem Schrägstrich und dem relativen Pfadnamen der Datei zu dem Verzeichnis, das datei enthält. Wenn es dateiverzeichnis noch nicht gibt und zwei Operanden angegeben sind, so ist der Name des entsprechenden Zielpfades für datei das Verzeichnis dateiverzeichnis. Der Name des entsprechenden Zielpfades für alle anderen Dateien in der Dateihierarchie ist eine Verkettung aus dateiverzeichnis, einem Schrägstrich und dem relativen Pfadnamen der Datei zu datei. Es tritt ein Fehler auf, wenn dateiverzeichnis nicht existiert und mehr als zwei Operanden angegeben werden. Es tritt ebenfalls ein Fehler auf, wenn dateiverzeichnis existiert und eine Datei eines in der XSH-Spezifikation definierten Typs ist, aber kein Dateiverzeichnis. In der folgenden Beschreibung ist datei die Datei, die kopiert wird, egal ob die Angabe über einen Operanden erfolgt oder ob sie als Datei in einer Dateihierarchie in einem Operanden datei angegeben wird. Der Begriff dateikopie verweist auf die Datei, die durch den Zielpfad angegeben wird. Für jede datei werden die folgenden Schritte durchgeführt:
|
Fehler
datei existiert nicht.
|
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos cp: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_COLLATE Legt die internationale Umgebung für das Verhalten von Bereichen, Äquivalenzklassen und Zeicheneinheiten in erweiterten regulären Ausdrücken für ja/nein-Abfragen fest. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten). LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Die Datei fachliteratur soll kopiert werden, bevor man sie verändert. Die Kopie soll fl heißen und im gleichen Dateiverzeichnis stehen wie fachliteratur.
|
Beispiel 2
Alle Dateien aus dem aktuellen Dateiverzeichnis, deren Namen mit dat beginnen, sollen ins Dateiverzeichnis /home/do/sicher kopiert werden. Dabei soll auch das Datum der letzten Änderung dupliziert werden.
|
Siehe auch
chmod, ln, mv, rm |