cp
(für copy) ist ein interner Befehl einer Unix-Shell zum Kopieren von Dateien bei Unix- oder unixoiden Betriebssystemen auf Computern.
Die Syntax ist sehr einfach gehalten; üblicherweise wird eine Datei von quelldatei zu zieldatei kopiert, in dem man
cp [Optionen] quelldatei zieldatei
eingibt. Mehrere Dateien können kopiert werden, indem alle Dateinamen angegeben werden, anschließend das Zielverzeichnis:
cp [Optionen] quelldatei … zielverzeichnis
Damit ist z. B. die Verwendung von Wildcards möglich, welche moderne Unix-Shells üblicherweise zur Verfügung stellen. So kopiert
cp bild*.jpg ziel/
z. B. die Dateien bild1.jpg, bild234.jpg oder bild_abc.jpg in das Verzeichnis ziel, wenn die verwendete Shell das Wildcard * expandiert.
Aus dem traditionellen Unix-Werkzeug haben sich einige Programme entwickelt, die Dateien über das Rechnernetz von einem Unix-Rechner zum nächsten kopieren und sich dabei in ihrer syntaktischen Verwendung stark an das Programm cp
anlehnen.
Eine Erweiterung des cp-Programms ist das rcp-Programm, welches für die Verwendung in Netzwerken (remote copy) geschaffen wurde.
Die Syntax ist:
rcp <Dateiname> <entfernter Benutzer@entfernter Rechner:/Verzeichnis/Dateiname>
Aufgrund prinzipbedingter Sicherheitsprobleme – die Dateien werden unverschlüsselt übertragen – wird von rcp dringendst abgeraten und stattdessen die Verwendung des Nachfolgers scp
aus der SSH-Familie empfohlen.
Wenn es darum geht, zwei Verzeichnisse abzugleichen und nur Änderungen zu kopieren, ist rsync ein weit verbreiteter Ersatz für den Befehl cp. Er kann sowohl lokal als auch über das Netzwerk benutzt werden. Beim Kopieren über das Netzwerk kann eine Verschlüsselung mit SSH durchgeführt werden.
cp(1)
: copy files – Open Group Base Specificationcp(1)
: copy files – OpenBSD General Commands Manualcp(1)
: Dateien und Verzeichnisse kopieren – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseitecp.c
Quellcode für GNU/Linux-cp
aus coreutils 8.13