Befehl "cp"

Zweck

Kopiert Dateien.

Syntax

Verwenden Sie die folgende Syntax, um eine Datei in eine andere Datei zu kopieren:

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [ -I ] [ -S ] [ -U ] [ -- ] Quellendatei Zieldatei

Verwenden Sie die folgende Syntax, um eine Datei in ein Verzeichnis zu kopieren:

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [[ -r | -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ -- ] Quellendatei ... Zielverzeichnis

Verwenden Sie die folgende Syntax, um ein Verzeichnis in ein Verzeichnis zu kopieren:

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] { -r | -R } [ -H | -L | -P ] [ -I ] [ -U ] [ -- ] Quellenverzeichnis ... Zielverzeichnis

Beschreibung

Der Befehl cp kopiert die mit dem Parameter Quellendatei angegebene Quellendatei in die mit dem Parameter Zieldatei angegebene Zieldatei. Wenn die Zieldatei vorhanden ist, überschreibt cp deren Inhalt, aber der Modus, der Eigner und die Gruppe, die der Datei zugeordnet sind, werden nicht geändert. Die letzte Zugriffszeit der Quellendatei und die letzte Änderungszeit der Zieldatei werden auf die Uhrzeit der Kopieroperation gesetzt. Wenn die Zieldatei nicht vorhanden ist, erstellt cp eine neue Datei mit dem Namen Zieldatei, die denselben Modus hat wie die Quellendatei hat. Es wird lediglich das Sticky Bit nicht gesetzt, es sei denn, dies wurde von einem Superuser vorgenommen. Eignerwert und Gruppenwert der Zieldatei sind die des Benutzers. Wenn die Zieldatei ein Link zu einer anderen Datei ist, überschreibt cp den Ziellink mit dem Inhalt der Quellendatei. Die Links der Zieldatei bleiben erhalten. Der Befehl cp kann auch die mit dem Parameter Quellendatei angegebenen Quellendateien (oder die mit dem Parameter Quellenverzeichnis angegebenen Verzeichnisse) in das mit dem Parameter Zielverzeichnis angegebene Verzeichnis kopieren.

Anmerkung: Wenn es sich bei einem der Quellenparameter um ein Verzeichnis handelt, müssen Sie das Flag -r oder das Flag -R angeben.

Wenn während des Kopierprozesses Verzeichnisse vom Befehl cp erstellt werden, hat das neu erstellte Verzeichnis denselben Modus wie das entsprechende Quellenverzeichnis.

Sie können auch Gerätedateien kopieren. Die bevorzugte Option hierfür ist das Flag -R. Wenn Sie das Flag -R angeben, werden die Gerätedateien unter dem neuen Pfadnamen neu erstellt. Wenn Sie das Flag -r angeben, versucht der Befehl cp, die Gerätedatei in eine reguläre Datei zu kopieren.

Anmerkung: Die Größe des E/A-Puffers für die von diesem Befehl generierten Systemaufrufe für Lese- und Schreiboperationen kann mit der Umgebungsvariablen AIX_STDBUFSZ konfiguriert werden.

Flags

Element Beschreibung
-d Gibt an, dass die Quellendatei in entschlüsselter Form (Klartext) im Ziel gespeichert werden soll.
-e Gibt an, dass die Quellendatei in verschlüsselter Form gespeichert werden soll, wenn das Zieldateisystem ein Encrypted File System (EFS) ist.
-E Die Option -E setzt eines der folgenden Argumente voraus. Wenn Sie die Option -E nicht angeben, ist warn (Warnung) das Standardverhalten.
force
Erzwingt das Fehlschlagen der Operation cp für eine Datei, wenn die feste Speicherbereichsgröße oder Bereichsreservierung nicht beibehalten werden kann.
ignore
Bewirkt, dass alle Fehler in Bezug auf die Beibehaltung der Speicherbereichsattribute ignoriert werden.
warn
Bewirkt, dass eine Warnung ausgegeben wird, wenn die Bereichsreservierung oder die feste Speicherbereichsgröße der Datei nicht beibehalten werden kann.
-f Gibt an, dass die Zieldatei entfernt werden soll, wenn sie nicht für Schreiboperationen geöffnet werden kann. Das Entfernen geht jeder vom Befehl cp ausgeführten Kopieroperation voran.
-h Erzwingt, dass der Befehl cp symbolische Links kopiert. Standardmäßig werden symbolische Links verfolgt, d. h., die Dateien, auf die symbolische Links verweisen, werden kopiert.
-H Führt Aktionen basierend auf dem Typ und dem Inhalt der Datei aus, die von einem mit dem Operanden Quellendatei angegebenen symbolischen Link referenziert wird.
-i Zeigt eine Eingabeaufforderung mit dem Namen einer zu überschreibenden Datei an. Dieser Fall tritt ein, wenn der Parameter Zielverzeichnis oder Zieldatei eine Datei enthält, die denselben Namen hat wie eine mit dem Parameter Quellendatei oder Quellenverzeichnis angegebene Datei hat. Wenn Sie y (yes=ja) oder die Entsprechung für y in der jeweiligen Ländereinstellung eingeben, wird die Ausführung des Befehls cp fortgesetzt. Jede andere Antwort verhindert, dass der Befehl cp die Datei überschreibt.
-I Unterdrückt die Warnung während der ACL-Konvertierung.
-L Führt Aktionen basierend auf dem Typ und dem Inhalt der Datei aus, die von einem mit dem Operanden Quellendatei angegebenen symbolischen Link oder einem symbolischen Link, die während der Traversierung einer Dateihierarchie gefunden wird, referenziert wird.
-p Dupliziert die folgenden Merkmale jeder Quellendatei bzw. jedes Quellenverzeichnisses in der entsprechenden Zieldatei bzw. dem entsprechenden Zielverzeichnis:
  • Uhrzeit der letzten Datenänderung und Uhrzeit des letzten Zugriffs. Wenn diese Duplizierung aus irgendeinem Grund fehlschlägt, schreibt der Befehl cp eine Diagnosenachricht in die Standardfehlerausgabe. Das Feld für die Nanosekunden der Quellendatei bzw. des Quellenverzeichnisses wird für die letzte Änderungszeit und die letzte Zugriffszeit nicht dupliziert.
  • Benutzer-ID und Gruppen-ID. Wenn diese Duplizierung aus irgendeinem Grund fehlschlägt, schreibt der Befehl cp möglicherweise eine Diagnosenachricht in die Standardfehlerausgabe.
  • Dateiberechtigungsbits und S_ISUID- und S_ISGID-Bits. Wenn diese Duplizierung aus irgendeinem Grund fehlschlägt, schreibt der Befehl cp eine Diagnosenachricht in die Standardfehlerausgabe.

Wenn die Benutzer-ID oder Gruppen-ID nicht dupliziert werden kann, werden die S_ISUID- und S_ISGID-Dateiberechtigungsbit gelöscht.

Damit die Eigner-ID und die Gruppen-ID, die Berechtigungsmodi, die Änderungs- und Zugriffszeiten beibehalten werden können, muss der Benutzer die entsprechenden Dateizugriffsberechtigungen haben (der Benutzer muss entweder ein Superuser sein oder dieselbe Eigner-ID wie die Zieldatei haben).

Die Zieldatei wird nicht gelöscht, wenn diese Merkmale nicht beibehalten werden können.

Zugriffssteuerungslisten (ACLs, Access Control Lists), die der Quellendatei zugeordnet sind, werden beibehalten, wenn das Zieldateisystem dies unterstützt. Wenn die Quellendatei eine NFS4-ACL enthält und das Zieldateisystem keine NFS4-ACLs unterstützt, wird die NFS4-ACL in AIXC konvertiert.

Wenn die ACL-Konvertierung erfolgreich ist, wird eine Warnung in der Standardfehlerausgabe ausgegeben.

Wenn die Quellendatei verschlüsselt ist und das Flag -p angegeben wird, behält der Befehl cp die EFS-Informationen bei. Im Allgemeinen haben die Flags -e und -d Vorrang vor dem Flag -p. Wenn ein Benutzer mit dem Flag -e die Konvertierung einer Klartextdatei in die verschlüsselte Form anfordert, behält die Kopieroperation Attribut wie die Uhrzeit der letzten Datenänderung, die Uhrzeit des letzten Zugriffs usw. nicht bei, selbst wenn der Benutzer das Flag -p angibt. Solange der Verschlüsselungs- oder Entschlüsselungsstatus unverändert bleibt, bewirkt das Flag -p, dass die Dateiattribute und EFS-Informationen beibehalten werden.

-P Führt Aktionen für jeden mit dem Operanden Quellendatei angegebenen symbolischen Link und jeden symbolischen Link, der während der Traversierung einer Dateihierarchie gefunden wird, aus.
-r Kopiert Dateihierarchien unter die Datei bzw. das Verzeichnis, die bzw. das mit dem Parameter Quellendatei bzw. mit dem Parameter Quellenverzeichnis angegeben wird (rekursive Kopie). Das Flag -r verarbeitet Gerätedateien auf dieselbe Weise wie reguläre Dateien.
-R Kopiert Dateihierarchien unter die regulären Dateien und Verzeichnissen aus dem mit dem Parameter Quellendatei oder Quellenverzeichnis angegebenen Verzeichnis in das mit dem Parameter Zielverzeichnis angegebene Verzeichnis. Gerätedateitypen wie FIFO-Dateien (First-in-First-out) und Block- und Zeicheneinheitendateien werden erneut erstellt und nicht kopiert. Symbolische Links werden verfolgt, sofern das Flag -h nicht angegeben wird. (Das Flag -R wird gegenüber dem Flag -r bevorzugt.)
Wenn Sie weder die Option -H noch die Option -L noch die Option -P angeben, ist nicht spezifiziert, welche dieser Optionen standardmäßig verwendet wird. Beachten Sie Folgendes:
  • Wenn Sie die Option -H angeben, führt der Befehl cp Aktionen aus, die auf dem Typ und dem Inhalt der Datei basieren, die von einem mit dem Operanden Quellendatei angegebenen symbolischen Link referenziert wird.
  • Wenn Sie die Option -L angeben, führt der Befehl cp Aktionen aus, die auf dem Typ und dem Inhalt der Datei basieren, die von einem mit dem Operanden Quellendatei angegebenen symbolischen Link oder einem während der Traversierung einer Dateihierarchie gefundenen symbolischen Link referenziert wird.
  • Wenn Sie die Option -P angeben, kopiert der Befehl cp alle symbolischen Links, die mit dem Operanden Quellendatei angegeben werden, sowie alle symbolischen Links, die beim Traversieren einer Dateihierarchie gefunden werden, und verfolgt keine symbolischen Links.
-S Wenn es sich bei der Quellendatei um eine Sparse-Datei handelt, wird dieses Merkmal beim Kopieren der Datei in die Zieldatei beibehalten.

Eine Sparse-Datei (Datei mit freien Bereichen) ist ein Typ von Computerdatei, die versucht, den Speicherplatz im Dateisystem effizienter zu nutzen, wenn die Blöcke, die der Datei zugeordnet sind, größtenteils leer sind.

-U Kopiert erweiterte Attribute (EA), Zugriffssteuerungslisten (ACLs, Access Control Lists) aus der Quellendatei in die Zieldatei. Wenn die erweiterten Attribute im im Zieldateisystem nicht unterstützt werden, werden sie ignoriert. Wenn der Quellen-ACL-Typ im Zieldateisystem nicht unterstützt wird, wird er in den kompatiblen ACL-Typ konvertiert, der vom Zieldateisystem unterstützt wird.
-- Gibt an, dass Parameter, die dem Flag - (Gedankenstrich Gedankenstrich) folgen, als Dateinamen interpretiert werden sollen. Dieses Nullflag ermöglicht die Angabe von Dateinamen, die mit einem Minuszeichen (-) beginnen.
In der folgenden Tabelle sind die Verschlüsselungs- und Entschlüsselungsstatus der Zieldatei unter verschiedenen Bedingungen aufgeführt:
Explizites Flag für den Befehl cp Quellendatei Zieldateisystem Ergebnis
-e (verschlüsselt) Ohne EFS Ohne EFS Fehler
-e Ohne EFS EFS Verschlüsselte Datei
-e EFS EFS Verschlüsselte Datei
-e EFS Ohne EFS Fehler
-d (entschlüsselt) Ohne EFS Ohne EFS Klartextdatei
-d Ohne EFS EFS Klartextdatei
-d EFS Ohne EFS Klartextdatei
-d EFS EFS Klartextdatei
Kein explizites Flag Ohne EFS Ohne EFS Klartextdatei
Kein explizites Flag Ohne EFS EFS Wenn im Zielverzeichnis die EFS-Übernahme aktiviert ist, ist die Zieldatei eine verschlüsselte Datei. Anderenfalls ist die Zieldatei eine Klartextdatei.
Kein explizites Flag EFS EFS Verschlüsselte Datei
Kein explizites Flag EFS Ohne EFS Fehler
Anmerkung: Es ist nicht zulässig, eine verschlüsselte Datei mit einer Klartextdatei zu überschreiben und umgekehrt, sofern Sie das Flag -f nicht angeben. Der Verschlüsselungsstatus des Ziels hängt vom Flag -e oder -d, der Verschlüsselungsübernahme, wenn Sie das Flag -e oder -d nicht zusammen mit dem Flag -f angeben, und dem Verschlüsselungsstatus der Quellendatei, wenn die Verschlüsselungsübernahme nicht aktiv ist, ab.

Exitstatus

Diese Befehle geben die folgenden Exitwerte zurück:

Element Beschreibung
0 Alle Dateien wurden erfolgreich kopiert.
>0 Es ist ein Fehler aufgetreten.

Beispiele

  1. Geben Sie Folgendes ein, um eine Kopie einer Datei im aktuellen Verzeichnis zu erstellen:
    cp prog.c prog.bak
    Dieser Befehl kopiert prog.c in prog.bak. Wenn die Datei prog.bak noch nicht vorhanden ist, wird sie vom Befehl cp erstellt. Wenn die Datei vorhanden ist, ersetzt der Befehl cp sie durch eine Kopie der Datei prog.c.
  2. Geben Sie Folgendes ein, um eine Datei in Ihrem aktuellen Verzeichnis in ein anderes Verzeichnis zu kopieren:
    cp jones /home/nick/clients
    Dieser Befehl kopiert die Datei jones nach /home/nick/clients/jones.
  3. Geben Sie Folgendes ein, um eine Datei in eine neue Datei zu kopieren und das Änderungsdatum, die Uhrzeit und die Zugriffssteuerungsliste der Quellendatei beizubehalten:
    cp -p smith smith.jr
    Dieser Befehl kopiert die Datei smith in die Datei smith.jr. Anstatt die Datei mit dem aktuellen Datum und der aktuellen Zeitmarke zu erstellen, ordnet das System der Datei smith.jr dasselbe Datum und dieselbe Uhrzeit wie der Datei smith zu. Die Datei smith.jr übernimmt auch den Zugriffssteuerungsschutz der Datei smith.
  4. Geben Sie Folgendes ein, um alle Dateien in einem Verzeichnis in ein neues Verzeichnis zu kopieren:
    cp /home/janet/clients/* /home/nick/customers
    Dieser Befehl kopiert nur die Dateien im Verzeichnis clients in das Verzeichnis customers.
  5. Geben Sie Folgendes ein, um ein Verzeichnis, einschließlich aller seiner Dateien und Unterverzeichnisse, in ein anderes Verzeichnis zu kopieren:
    cp /home/janet/clients/* /home/nick/customers
    Anmerkung: Ein Verzeichnis kann nicht in sich selbst kopiert werden.
    Dieser Befehl kopiert das Verzeichnis clients, einschließlich aller Dateien, Unterverzeichnisse und der Dateien in diesen Unterverzeichnissen, in das Verzeichnis customers/clients.
  6. Geben Sie Folgendes ein, um eine bestimmte Gruppe von Dateien in ein anderes Verzeichnis zu kopieren:
    cp jones lewis smith /home/nick/clients
    Dieser Befehl kopiert die Dateien jones, lewis und smith aus Ihrem aktuellen Arbeitsverzeichnis in das Verzeichnis /home/nick/clients.
  7. Geben Sie Folgendes ein, um Mustererkennungszeichen zum Kopieren von Dateien zu verwenden:
    cp programs/*.c .
    Dieser Befehl kopiert die Dateien im Verzeichnis programs, die mit .c enden, in das aktuelle Verzeichnis, das mit dem einzelnen Punkt (.) angegeben ist. Sie müssen ein Leerzeichen zwischen dem c und dem letzten Punkt einfügen.
  8. Geben Sie Folgendes ein, um eine Datei in eine neue Datei zu kopieren und die ACL und die erweiterten Attribute der Quellendatei beizubehalten:
    cp -U smith smith.jr
  9. Geben Sie Folgendes ein, um eine Sparse-Datei als solche zu kopieren:
    cp -S file.c sparse_file.c

Dateien

/usr/bin/cp
Enthält den Befehl cp.