Der Befehl cp kopiert Dateien und Verzeichnisse. Er gehört zu den grundlegenden Werkzeugen für die Dateiverwaltung auf der Kommandozeile.

Syntax des cp-Befehls

Die allgemeine Syntax lautet:

cp [OPTIONEN] QUELLE ZIEL
  • QUELLE - Eine oder mehrere Dateien oder Verzeichnisse, die kopiert werden sollen.
  • ZIEL - Der Zielort für die Kopie (Datei oder Verzeichnis).

Zum Kopieren benötigst du Leserechte für die Quelle und Schreibrechte für das Ziel. Fehlen diese Rechte, erscheint die Meldung “Permission denied”.

Dateien kopieren

Eine Datei im selben Verzeichnis kopieren

Um eine Datei im aktuellen Verzeichnis zu duplizieren, gibst du Quelle und Ziel an:

cp dokument.txt dokument_backup.txt

Die geschweiften Klammern bieten eine Kurzschreibweise für solche Fälle:

cp dokument{,_backup}.txt

Dieser Befehl erzeugt das gleiche Ergebnis wie der vorherige.

Eine Datei in ein anderes Verzeichnis kopieren

Gib als Ziel den Pfad zum gewünschten Verzeichnis an:

cp dokument.txt /home/benutzer/backup/

Die Datei behält ihren ursprünglichen Namen. Soll sie einen neuen Namen erhalten, gib diesen mit an:

cp dokument.txt /home/benutzer/backup/dokument_alt.txt

Wichtige Optionen

Überschreiben kontrollieren

Standardmäßig überschreibt cp eine bestehende Zieldatei ohne Rückfrage. Mehrere Optionen ändern dieses Verhalten:

OptionWirkung
-iFragt vor dem Überschreiben nach Bestätigung
-nÜberschreibt niemals bestehende Dateien
-uKopiert nur, wenn die Quelle neuer ist als das Ziel
cp -i wichtig.txt /backup/wichtig.txt

Bei diesem Befehl erscheint eine Abfrage, falls die Zieldatei bereits existiert.

Dateiattribute erhalten

Die Option -p bewahrt Dateimodus, Eigentümer und Zeitstempel:

cp -p config.conf /etc/backup/config.conf

Das ist nützlich bei Konfigurationsdateien oder wenn die Metadaten wichtig sind.

Fortschritt anzeigen

Mit -v (verbose) zeigt cp jeden Kopiervorgang an:

cp -v *.log /var/backup/

Die Ausgabe sieht dann so aus:

'access.log' -> '/var/backup/access.log'
'error.log' -> '/var/backup/error.log'

Verzeichnisse kopieren

Für Verzeichnisse ist die Option -r (rekursiv) erforderlich. Ohne sie verweigert cp das Kopieren von Verzeichnissen.

cp -r projekt/ projekt_backup/

Dieser Befehl kopiert das gesamte Verzeichnis projekt mit allen Unterverzeichnissen und Dateien.

Zielverzeichnis existiert bereits

Wenn das Zielverzeichnis bereits existiert, kopiert cp das Quellverzeichnis hinein:

cp -r fotos/ backup/

Das Ergebnis ist backup/fotos/ mit allen Inhalten.

Nur den Inhalt kopieren

Die Option -T behandelt das Ziel als reguläre Datei, nicht als Verzeichnis. So kopierst du nur den Inhalt:

cp -rT fotos/ backup/

Jetzt landen die Dateien direkt in backup/, ohne das zusätzliche Unterverzeichnis fotos.

Eine Alternative ist das Glob-Muster *:

cp -r fotos/* backup/

Hinweis: Das Sternchen erfasst keine versteckten Dateien (die mit . beginnen).

Mehrere Dateien kopieren

Gib mehrere Quellen an, gefolgt vom Zielverzeichnis:

cp datei1.txt datei2.txt datei3.txt /backup/

Bei mehreren Quellen muss das Ziel ein Verzeichnis sein.

Häufige Anwendungsfälle

Backup einer Konfigurationsdatei vor Änderungen

cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

Projektordner archivieren

cp -rv projekt/ /mnt/archiv/projekt_$(date +%Y%m%d)/

Die Option -v zeigt den Fortschritt, das Datumsformat erzeugt einen eindeutigen Ordnernamen.

Dateien synchronisieren (nur neuere)

cp -ruv ~/dokumente/ /backup/dokumente/

Mit -u werden nur geänderte Dateien kopiert, was bei großen Verzeichnissen Zeit spart.

Zusammenfassung

Der cp-Befehl kopiert Dateien und Verzeichnisse. Für Verzeichnisse ist -r erforderlich. Mit -i fragst du vor dem Überschreiben nach, mit -p behältst du Dateiattribute. Weitere Optionen findest du in der Manpage mit man cp.

Für Kopien über das Netzwerk eignen sich scp oder rsync.

Verwandte Artikel