Der Befehl cp kopiert Dateien und Verzeichnisse, während die Quelle erhalten bleibt. Seine grundlegende Syntax lautet:
cp [OPTIONS] SOURCE DESTINATION
Befehlszeile · Lektion 10
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.
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?
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/?
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?
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?
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?
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:
cp, mv und rm eine Projektstruktur, verschiebe Dateien und entferne nicht mehr benötigte Verzeichnisse.Lektion 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.
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen