cp (Kopieren)
100%

Befehlszeile · Lektion 10

cp (Kopieren)

Lerne, Dateien und Verzeichnisbäume zu kopieren und dabei Überschreibungen sowie erhaltene Attribute zu steuern.

Der Befehl cp kopiert Dateien und Verzeichnisse, während die Quelle erhalten bleibt. Seine grundlegende Syntax lautet:

cp [OPTIONS] SOURCE DESTINATION

Du kannst eine Datei an einen anderen Pfad kopieren, mehrere Dateien in ein Verzeichnis übernehmen oder einen vollständigen Verzeichnisbaum rekursiv kopieren.

Eine Datei kopieren

Gib zuerst die Quelle und danach das Ziel an:

$ cp mycoolfile /home/pete/Documents/cooldocs

Ist /home/pete/Documents/cooldocs ein vorhandenes Verzeichnis, wird darin eine Kopie namens mycoolfile erstellt. Stattdessen kannst du einen neuen Zieldateinamen angeben:

$ cp mycoolfile /home/pete/Documents/mycoolfile_backup

Im zweiten Beispiel erhält die Kopie den Namen mycoolfile_backup.

Welcher Befehl kopiert draft.txt nach final.txt, während draft.txt erhalten bleibt?

Mehrere Dateien in ein Verzeichnis kopieren

Führe zuerst alle Quellen auf und setze das Zielverzeichnis ans Ende:

$ cp report.txt notes.txt summary.txt /home/pete/Documents/

Bei mehreren Quellen muss das letzte Argument ein Verzeichnis sein.

Welcher Befehl kopiert a.txt und b.txt in das vorhandene Verzeichnis archive/?

Dateien mit Platzhaltern auswählen

Die Shell kann Platzhaltermuster zu mehreren Quellpfaden erweitern:

  • *: Passt auf eine beliebige Zeichenfolge.
  • ?: Passt auf genau ein Zeichen.
  • []: Passt auf eines der in den Klammern enthaltenen Zeichen.

So kopierst du beispielsweise alle Namen im aktuellen Verzeichnis, die auf .jpg enden, nach Pictures:

$ cp *.jpg /home/pete/Pictures

Prüfe die Treffer vor einem umfangreichen Kopiervorgang, besonders wenn das Ziel wichtige Daten enthält:

$ ls *.jpg
beach.jpg  lunch.jpg  profile.jpg
$ cp *.jpg /home/pete/Pictures

Welcher Befehl zeigt vor dem Kopieren die nicht versteckten Namen an, auf die *.jpg derzeit passt?

Verzeichnisbäume kopieren

Zum Kopieren eines Verzeichnisses samt aller darunterliegenden Inhalte ist ein rekursiver Vorgang erforderlich. Verwende -r oder -R:

$ cp -r Pumpkin/ /home/pete/Documents

Damit werden das Verzeichnis Pumpkin und alle seine Nachkommen nach Documents kopiert.

Auch das große -R fordert rekursives Kopieren an:

$ cp -R website /home/pete/backups/

Der Archivmodus -a eignet sich für sicherungsähnliche Kopien. Er kopiert rekursiv und erhält Links sowie zahlreiche Dateiattribute:

$ cp -a project/ project-backup/

Du möchtest project/ rekursiv und sicherungsähnlich kopieren und dabei Links sowie zahlreiche Attribute erhalten. Welcher Befehl passt dazu?

Überschreibungen steuern

Standardmäßig kann cp eine vorhandene Zieldatei ersetzen. Mit -i lässt du vor dem Überschreiben nachfragen:

$ cp -i mycoolfile /home/pete/Pictures
cp: overwrite '/home/pete/Pictures/mycoolfile'? n

Verwende -n, wenn ein vorhandenes Ziel nicht überschrieben werden soll:

$ cp -n mycoolfile /home/pete/Pictures

Die Option -f weist GNU cp an, ein vorhandenes Ziel zu entfernen und den Kopiervorgang erneut zu versuchen, falls die Datei nicht zum Schreiben geöffnet werden kann. Sie ersetzt keine sorgfältige Zielprüfung. Auch Shell-Aliase können Optionen wie -i ergänzen; untersuche eine unerwartete Nachfrage, statt von einer bestimmten Konfiguration auszugehen.

Welcher Befehl kopiert report.txt nach backup/, überspringt aber ein bereits vorhandenes Ziel gleichen Namens?

Dateien erhalten oder auffrischen

Mit -p erhältst du den Modus, die Eigentümerschaft soweit zulässig und die Zeitstempel der Quelldatei:

$ cp -p mycoolfile /home/pete/backups/

Mit -u kopierst du eine Quelle nur dann, wenn das Ziel fehlt oder die Quelle neuer ist:

$ cp -u *.txt /home/pete/Documents/

Weitere gebräuchliche Optionen sind:

  • -f: Versucht bei Bedarf, das Ziel vor dem erneuten Kopieren zu entfernen.
  • -v: Zeigt jede Datei beim Kopieren an.

Zum praktischen Üben eignen sich diese Labs:

  1. Linux cp Command: File Copying – Übe die grundlegende Verwendung, rekursives Kopieren, das Bewahren von Attributen und den Einsatz von Platzhaltern für Dateien und Verzeichnisse.
  2. Organizing Files and Directories – Organisiere mit cp, mv und rm eine Projektstruktur, verschiebe Dateien und entferne nicht mehr benötigte Verzeichnisse.

Lektion abgeschlossen

Sie haben cp (Kopieren) abgeschlossen

Du kannst nun Dateien und Verzeichnisbäume kopieren und den Umgang mit Zielen gezielt steuern.

  • Setze Quelloperanden vor das Ziel.

  • Prüfe Platzhaltertreffer vor einem umfangreichen Kopiervorgang.

  • Kopiere Verzeichnisbäume rekursiv oder im Archivmodus.

  • Bestätige, überspringe oder ersetze vorhandene Ziele bewusst.

  • Erhalte Attribute oder kopiere bei Bedarf nur neuere Quellen.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Befehlszeile