1 cp (copy)
1.1 Das Grundprinzip: Quelle und Ziel
Die Syntax von cp folgt immer einer logischen Struktur, die man sich im Forum wie eine Einbahnstraße merken kann:
Du sagst dem System also immer zuerst, was kopiert werden soll, und als Zweites, wohin es kopiert werden soll.
1.2 Die wichtigsten Parameter im Alltag:
Wenn man cp ohne Optionen aufruft, kann es nur einzelne Dateien kopieren. Für den Alltag im Forum benötigt man meistens diese drei lebenswichtigen Parameter:
- -r oder -R (rekursiv):
Unverzichtbar für Ordner! Standardmäßig weigert sich cp, Verzeichnisse zu kopieren. Mit -r kopiert das Werkzeug den kompletten Ordner inklusive aller Unterordner und den darin enthaltenen Dateien. - -p (preserve):
Kopiert die Datei und behält dabei die ursprünglichen Dateirechte, den Eigentümer und die Zeitstempel (Erstellungs-/Änderungsdatum) bei. Ohne diesen Parameter gehört die Kopie dem Benutzer, der den Befehl ausgeführt hat, und das Datum wird auf die aktuelle Uhrzeit gesetzt. - -a (archive):
Das absolute Schweizer Taschenmesser für Backups im Terminal. Der Parameter -a kombiniert -r und -p und sorgt zusätzlich dafür, dass auch symbolische Links als Links kopiert werden. Wenn du einen Ordner exakt spiegeln willst, nimmst du cp -a.
1.3 Praktische Beispiele:
Eine einzelne Datei kopieren (und umbenennen):
Eine Datei in einen anderen Ordner kopieren:
Einen kompletten Ordner spiegeln (rekursiv im Archiv-Modus):
1.4 ⚠️ Der Klassiker im Foren-Support: "cp hat ungefragt meine neuere Datei überschrieben!"
Das gefährlichste Merkmal von cp im Werkszustand: Es ist absolut eiskalt. Wenn im Zielordner bereits eine gleichnamige Datei existiert, wird diese ohne jegliche Warnung überschrieben. Im Forum führt das regelmäßig zu bitteren Tränen bei Einsteigern.
QuoteDie zwei Foren-Schutzschilde gegen Datenverlust:
Der interaktive Modus (-i): > Zwingt cp dazu, vor dem Überschreiben einer Datei explizit nachzufragen.
Codecp -i wichtige_datei.txt ~/Dokumente/ # Ausgabe bei Konflikt: cp: '~/Dokumente/wichtige_datei.txt' überschreiben? (j/n)(Tipp: Viele Linux-Distributionen richten ab Werk in der .bashrc einen sogenannten Alias ein, sodass cp automatisch als cp -i ausgeführt wird. Man sollte sich aber auf fremden Servern niemals blind darauf verlassen!)
- Der Update-Modus (-u):
Kopiert die Datei nur dann, wenn die Quelldatei neuere Änderungen enthält als die Datei im Zielordner oder wenn die Datei im Ziel noch gar nicht existiert. Perfekt für einfache, schnelle Datensicherungen.
1.5 💡 Der "Aha!"-Effekt: "Warum sehe ich keinen Fortschrittsbalken?"
Ein extrem häufiger Thread bei großen Kopiervorgängen (z. B. wenn ein Nutzer ein 20-Gigabyte-Video auf einen langsamen USB-Stick schiebt): Das Terminal scheint „einzufrieren“, der Cursor blinkt nur und man weiß nicht, ob das System noch arbeitet oder abgestürzt ist.
QuoteDie Aufklärung zur Terminal-Ruhe: cp folgt der alten Unix-Philosophie: „No news is good news“ (Keine Nachrichten sind gute Nachrichten). Es gibt standardmäßig absolut keine Rückmeldung, bis der Vorgang abgeschlossen ist.
Die zwei Lösungen für ungeduldige Nutzer:
- Die gesprächige Option (-v für verbose):
Zeigt zeilenweise an, welche Datei gerade eben kopiert wurde (cp -v datei.txt /ziel/). Bei tausenden kleinen Dateien rattert das Terminal dann wie wild.- Der moderne Retter (-g oder progress):
In einigen modernen Linux-Distributionen (oder über das Tool gcp) kann man sich einen echten Prozent-Balken anzeigen lassen. Alternativ empfiehlt man im Forum bei riesigen Datenmengen statt cp lieber direkt das Werkzeug rsync -P zu nehmen, da dieses von Haus aus eine wunderschöne Fortschrittsanzeige mit Datendurchsatz mitbringt.