Cp (Unix)
Originalautor (en) | AT & T Bell Laboratories |
---|---|
Entwickler (en) | Verschiedene Open Source und kommerziell Entwickler |
Erstveröffentlichung | 3. November 1971 |
Geschrieben in | Plan 9: C |
Betriebssystem | Unix, Unix-artig, Plan 9, Inferno, Kolibrios |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | CoreUtils: GPLV3 Plan 9: MIT -Lizenz |
Im Computer, CP
ist ein Befehl in verschiedenen Unix und Unix-artig Betriebssysteme zum Kopieren Dateien und Verzeichnisse. Der Befehl verfügt über drei Hauptbetriebsmodi, die nach den Argumenten zum Kopieren einer Datei in eine andere Datei, eine oder mehrere Dateien in ein Verzeichnis oder für das Kopieren von ganzen Verzeichnissen in ein anderes Verzeichnis geäußert werden.[1]
Das Dienstprogramm akzeptiert ferner verschiedene Flags für die Befehlszeilenoption, um die ausgeführten Vorgänge zu detaillieren. Die beiden Hauptspezifikationen sind Posix CP und GNU CP. GNU CP hat viele zusätzliche Optionen über die POSIX -Version.[2]
Der Befehl ist auch in der erhältlich EFI -Hülle.[3]
Geschichte
CP war Teil von Version 1 Unix.[4] Die Version von CP
gebündelt GNU CoreUtils wurde von Torbjorn Granlund, David Mackenzie und Jim Meyering geschrieben.[5]
Betriebsmodi
CP hat drei Hauptbetriebsmodi. Diese Modi werden aus dem Typ und der Anzahl der Argumente abgeleitet, die dem Programm beim Aufrufen vorgelegt wurden.
- Wenn das Programm zwei Argumente von Pfadnamen für Dateien enthält, kopiert das Programm den Inhalt der ersten Datei in die zweite Datei und erstellt gegebenenfalls die zweite Datei.
- Wenn das Programm ein oder mehrere Argumente für Pfadnamen von Dateien enthält und denen ein Argument eines Pfades zu einem Verzeichnis folgt, kopiert das Programm jede Quelldatei in das Zielverzeichnis, wobei die nicht bereits vorhandenen Dateien erstellt werden.
- Wenn die Argumente des Programms die Pfadnamen für zwei Verzeichnisse sind, kopiert CP alle Dateien im Quellverzeichnis zum Zielverzeichnis und erstellt alle erforderlichen Dateien oder Verzeichnisse. Diese Betriebsart erfordert in der Regel ein zusätzliches Optionsflag r, um das rekursive Kopieren von Verzeichnissen anzuzeigen. Wenn das Zielverzeichnis bereits vorhanden ist, wird die Quelle in das Ziel kopiert, während ein neues Verzeichnis erstellt wird, wenn das Ziel nicht existiert.
Verwendungszweck
Kopieren einer Datei in eine andere Datei:
CP [-fhip] [-] SourceFile TargetFile
Kopieren von Dateien (en) in ein Verzeichnis
CP [-fhip] [-] SourceFile ... targetDirectory
Kopieren eines Verzeichnisses in ein Verzeichnis (-R oder -r muss verwendet werden)
cp -r | -r [-fhip] [-] Sourcedirectory ... targetDirectory
Option Flags
-
-f
(Kraft) - Gibt die Entfernung der Zieldatei an, wenn sie nicht für Schreibvorgänge geöffnet werden kann. Die Entfernung geht jedem Kopieren voraus, der von der durchgeführt wirdCP
Befehl. -
-H
(Dereference) - macht dasCP
Befehl folgen Symbolische Links (Symlinks), so dass das Ziel die Zieldatei und eher einen Symlink für das Ziel hat. -
-ich
(Interaktiv) - Aufforderungen mit dem Namen einer Datei, die überschrieben werden soll. Dies geschieht, wenn die Zielverzeichnis oder Zieldatei Der Parameter enthält eine Datei mit demselben Namen wie eine in der angegebene Datei SourceFile oder Quarkuse Parameter. Wenn man eintritty
(oder das Äquivalent des Gebietsschemas vony
), dasCP
Befehl geht weiter. Jede andere Antwort verhindert dieCP
Befehl vom Überschreiben der Datei. -
-n
(nein kuscheln) - verhindert versehentlich Überschreiben von Dateien -
-p
(Erhaltung) - die-p
FLAGS bewahrt die folgenden Eigenschaften jedes Quellpfads im entsprechenden Ziel: die Zeit der Zeit der Letzte Datenänderung und die Zeit des letzten Zugangs, das Eigentum (nur wenn es die Berechtigungen hat) und die Datei-Berechtigungsbits. -
-R
oder-r
(rekursiv) - Kopienverzeichnisse rekursiv
Beispiele
Erstellen einer Kopie einer Datei im aktuellen Verzeichnis:
cp prog.c prog.bak
Dies kopiert Prog.c an Prog.bak. Wenn die Datei prog.bak noch nicht vorhanden ist, erstellt der CP -Befehl sie. Wenn es vorhanden ist, ersetzt der CP -Befehl seinen Inhalt durch den Inhalt der Prog.c -Datei.
Kopieren Sie zwei Dateien im aktuellen Verzeichnis in ein anderes Verzeichnis:
CP Jones Smith/Home/Nick/Clients
Dies kopiert die Dateien Jones zu/home/nick/clients/jones und Schmied an/home/nick/clients/smith.
Kopieren Sie eine Datei in eine neue Datei und bewahren Sie die mit der Quelldatei zugeordnete Änderungsdatum, Uhrzeit und Zugriffskontrollliste auf:
CP -P Smith.jr
Dies kopiert die Smith -Datei in die Smith.jr -Datei. Anstatt die Datei mit dem aktuellen Datum und der Zeitstempel zu erstellen, gibt das System der Smith.jr -Datei gleich Datum und Uhrzeit wie die Smith -Datei. Die Smith.jr -Datei erbt auch den Zugriffsschutzschutz der Smith -Datei.
Kopieren Sie ein Verzeichnis, einschließlich aller Dateien und Unterverzeichnisse, in ein anderes Verzeichnis:
CP -r/Home/Nick/Clients/Home/Nick/Kunden
Dies kopiert das Verzeichnis Kunden, einschließlich aller Dateien, Unterverzeichnisse und der Dateien in diesen Unterverzeichnissen zum Verzeichnis Kunden/Kunden. Einige Unix -Systeme verhalten sich in diesem Modus je nach Beendigung von Verzeichnispfaden unterschiedlich. Verwendung cp -r/home/nick/clients//home/nick/cunden
Auf einem GNU -System verhält es sich wie erwartet; Auf einem BSD -System kopiert es jedoch alle Inhalt des Verzeichnisses "Kunden" anstelle des Verzeichnisses Kunden selbst. Gleiches gilt sowohl für GNU- als auch in BSD -Systemen, wenn der Pfad des Quellverzeichnisses eingeht. oder .. (mit oder ohne nachfolgende Schrägstrich).
Das Kopieren einer Datei in eine vorhandene Datei wird durchgeführt, indem die vorhandene Datei im Aktualisierungsmodus geöffnet wird, wodurch der Inode der Dateien aufrechterhalten wird, für die Schreibzugriff erforderlich ist und in der Zieldatei die Berechtigungen beibehält, die sie ursprünglich hatte.
Verwandte Unix -Befehle
- CPIO - Kopieren Sie eine ganze Verzeichnisstruktur von einem Ort zum anderen
- Teer - Erstellen Sie ein Archiv von Dateien
- Verknüpfung - Systemaufruf, um einen Link zu einer Datei oder einem Verzeichnis zu erstellen
- ln - Erstellen Sie einen Link zu einer Datei oder einem Verzeichnis
- MV - Verschieben Sie eine Datei oder ein Verzeichnis
- rm - Entfernen Sie eine Datei oder ein Verzeichnis
- Verknüpfen - Systemanruf, um eine Datei oder ein Verzeichnis zu entfernen
- Chmod - Ändern Sie den Modus (AKA -Berechtigungen) in einer Datei oder einem Verzeichnis
- Chown - Ändern Sie das Eigentum an einer Datei oder einem Verzeichnis
- chgrp - Ändern Sie die Gruppe in einer Datei oder einem Verzeichnis
- UUCP - UNIX to UNIX -Kopie
- SCP - sichere Kopie über SSH
- Fortschritt,[6][7] Linux -Tool, um den Fortschritt für CP, MV, DD zu zeigen.
Siehe auch
Verweise
- ^ "CP (1) - Linux Manual Page".
- ^ "GNU CoreUtils: CP -Aufruf". www.gnu.org.
- ^ "EFI -Muscheln und Skripten". Intel. Abgerufen 2013-09-25.
- ^ McIlroy, M. D. (1987). A Research Unix Reader: Annotierte Auszüge aus dem Programmierhandbuch, 1971–1986 (PDF) (Technischer Bericht).Cstr.Bell Labs.139.
- ^ "CP (1): Dateien/Verzeichnisse kopieren - Linux Man Page".
- ^ "Fortschritt (1) - Linux Man Page".
- ^ "Fortschritt - CoreUtils Fortschritt der Betrachter". GitHub. 14. November 2021.
Externe Links
- Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe - Shell and Utilities Referenz,
- Freebsd Allgemeine Befehle Handbuch - -
- Netbsd Allgemeine Befehle Handbuch - -
- OpenBSD Allgemeine Befehle Handbuch - -
- Solaris 10 Benutzerbefehle Referenz Handbuch - -
- Linux Benutzerbefehle Handbuch - -
- Plan 9 Programmierhandbuch, Volume 1 - -