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 ] [ -- ] SourceFile TargetFile
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 ] [ -- ] SourceFile ... TargetDirectory
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 ] [ -- ] SourceDirectory ... TargetDirectory
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 einer der Quellenparameter ein Verzeichnis ist, müssen Sie eines der Flags -r oder -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 Sieyoder das Äquivalent der Ländereinstellung y, wird der Befehl 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
Dieser Befehl gibt 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:
Diese Kopieprog.cinprog.bak. Wenn dieprog.bakDatei noch nicht vorhanden ist, wird sie vom Befehl cp erstellt. Wenn sie vorhanden ist, ersetzt der Befehl cp sie durch eine Kopie derprog.ceportiert.cp prog.c prog.bak
- Geben Sie Folgendes ein, um eine Datei in Ihrem aktuellen Verzeichnis in ein anderes Verzeichnis zu kopieren:
Dadurch wird diejonesDatei in/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:
Dadurch wird diesmithin die Dateismith.jreportiert. Anstatt die Datei mit dem aktuellen Datum und der aktuellen Zeitmarke zu erstellen, gibt das System diesmith.jrDatei mit demselben Datum und derselben Uhrzeit wie diesmitheportiert. Dersmith.jrDatei übernimmt auch diesmithZugriffskontrollschutz der Datei.cp -p smith smith.jr
- Geben Sie Folgendes ein, um alle Dateien in einem Verzeichnis in ein neues Verzeichnis zu kopieren:
Dadurch werden nur die Dateien in derclientsin das VerzeichniscustomersVerzeichnis.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
Hinweis: Ein Verzeichnis kann nicht in sich selbst kopiert werden.Dadurch wird dieclientsVerzeichnis, einschließlich aller zugehörigen Dateien, Unterverzeichnisse und Dateien in diesen Unterverzeichnissen, an diecustomers/clientsVerzeichnis. - Geben Sie Folgendes ein, um eine bestimmte Gruppe von Dateien in ein anderes Verzeichnis zu kopieren:
Dadurch wird diejones,lewisund imsmithDateien in Ihrem aktuellen Arbeitsverzeichnis in das Verzeichnis/home/nick/clientsVerzeichnis.cp jones lewis smith /home/nick/clients
- Geben Sie Folgendes ein, um Mustererkennungszeichen zum Kopieren von Dateien zu verwenden:
Dadurch werden die Dateien in derprogramsVerzeichnis, das auf.cin das aktuelle Verzeichnis, angegeben durch die einzelne.(Punkt). Sie müssen ein Leerzeichen zwischen dencund den letzten Punkt.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 .