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.
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.
|
-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:
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:
|
-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. |
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 |
Exitstatus
Diese Befehle geben die folgenden Exitwerte zurück:
Element | Beschreibung |
---|---|
0 | Alle Dateien wurden erfolgreich kopiert. |
>0 | Es ist ein Fehler aufgetreten. |
Beispiele
- Geben Sie Folgendes ein, um eine Kopie einer Datei im aktuellen Verzeichnis zu erstellen:
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.cp prog.c prog.bak
- Geben Sie Folgendes ein, um eine Datei in Ihrem aktuellen Verzeichnis in ein anderes Verzeichnis zu kopieren:
Dieser Befehl kopiert die Datei jones nach /home/nick/clients/jones.cp jones /home/nick/clients
- Geben Sie Folgendes ein, um eine Datei in eine neue Datei zu kopieren und das Änderungsdatum, die Uhrzeit und die Zugriffssteuerungsliste der Quellendatei beizubehalten:
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.cp -p smith smith.jr
- Geben Sie Folgendes ein, um alle Dateien in einem Verzeichnis in ein neues Verzeichnis zu kopieren:
Dieser Befehl kopiert nur die Dateien im Verzeichnis clients in das Verzeichnis customers.cp /home/janet/clients/* /home/nick/customers
- 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. - Geben Sie Folgendes ein, um eine bestimmte Gruppe von Dateien in ein anderes Verzeichnis zu kopieren:
Dieser Befehl kopiert die Dateien jones, lewis und smith aus Ihrem aktuellen Arbeitsverzeichnis in das Verzeichnis /home/nick/clients.cp jones lewis smith /home/nick/clients
- Geben Sie Folgendes ein, um Mustererkennungszeichen zum Kopieren von Dateien zu verwenden:
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.cp programs/*.c .
- 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
- 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.