Es gibt zwei Hauptwerkzeuge zum Kopieren: cp für einzelne Dateien und rsync für Verzeichnisse und Synchronisation. Beide Befehle setzen Leserechte auf der Quelle und Schreibrechte am Ziel voraus.

Dateien kopieren mit cp

Der cp-Befehl kopiert Dateien von einem Ort zum anderen. Die Syntax ist einfach:

cp QUELLE ZIEL

Eine Datei duplizieren

Um eine Datei im selben Verzeichnis zu kopieren:

cp bericht.txt bericht_backup.txt

Eine Datei in ein anderes Verzeichnis kopieren

Gib als Ziel den Pfad zum Verzeichnis an:

cp bericht.txt /home/benutzer/backup/

Die Datei behält ihren Namen. Für einen neuen Namen gibst du diesen mit an:

cp bericht.txt /home/benutzer/backup/bericht_alt.txt

Mehrere Dateien kopieren

Gib mehrere Quelldateien an, gefolgt vom Zielverzeichnis:

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

Wildcards funktionieren ebenfalls:

cp *.log /var/backup/

Überschreiben kontrollieren

Standardmäßig überschreibt cp existierende Dateien ohne Rückfrage. Mit -i fragt er vorher nach:

cp -i wichtig.txt /backup/wichtig.txt

Dateiattribute erhalten

Die Option -p behält Zeitstempel, Eigentümer und Berechtigungen bei:

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

Kopiervorgang anzeigen

Mit -v siehst du, was kopiert wird:

cp -v *.txt /backup/

Verzeichnisse kopieren mit cp

Für Verzeichnisse brauchst du die Option -r (rekursiv):

cp -r projekt/ projekt_backup/

Ohne -r verweigert cp das Kopieren von Verzeichnissen.

Verhalten bei existierendem Zielverzeichnis

Existiert das Zielverzeichnis bereits, kopiert cp das Quellverzeichnis hinein:

cp -r fotos/ backup/

Das Ergebnis ist backup/fotos/ mit allen Inhalten.

Nur den Inhalt kopieren

Mit -T kopierst du den Inhalt direkt ins Ziel, ohne ein Unterverzeichnis zu erstellen:

cp -rT fotos/ backup/

Jetzt landen alle Dateien direkt in backup/.

Verzeichnisse kopieren mit rsync

rsync ist schneller und flexibler als cp, besonders bei großen Verzeichnissen. Es kopiert nur geänderte Dateien und zeigt den Fortschritt an.

Die wichtigste Option ist -a (Archivmodus). Sie kopiert rekursiv und erhält alle Attribute:

rsync -a quelle/ ziel/

Der abschließende Schrägstrich

Bei rsync ist der Schrägstrich am Ende entscheidend:

rsync -a fotos/ backup/

Kopiert den Inhalt von fotos/ nach backup/.

rsync -a fotos backup/

Kopiert das gesamte Verzeichnis fotos nach backup/, ergibt backup/fotos/.

Fortschritt anzeigen

Mit -v (verbose) und --progress siehst du den Kopiervorgang:

rsync -av --progress /var/www/ /backup/www/

Nur neuere Dateien kopieren

rsync kopiert standardmäßig nur geänderte Dateien. Das macht wiederholte Backups schnell:

rsync -av ~/dokumente/ /backup/dokumente/

Beim zweiten Durchlauf werden nur neue oder geänderte Dateien übertragen.

Praktische Beispiele

Backup einer Konfigurationsdatei

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

Projektverzeichnis archivieren

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

Großes Verzeichnis mit Fortschrittsanzeige kopieren

rsync -av --progress /home/benutzer/fotos/ /mnt/extern/fotos/

Verzeichnisse synchronisieren

rsync -av --delete quelle/ ziel/

Die Option --delete entfernt Dateien im Ziel, die in der Quelle nicht mehr existieren.

Vorsicht: Verwende --delete nur, wenn du sicher bist, dass das Ziel ein Backup der Quelle ist.

Zusammenfassung

Für einzelne Dateien genügt cp. Bei Verzeichnissen ist cp -r oder rsync -a die Wahl. rsync bietet Vorteile bei großen Datenmengen und wiederholten Backups, da es nur Änderungen überträgt.

AufgabeBefehl
Datei kopierencp quelle.txt ziel.txt
Verzeichnis kopierencp -r quelle/ ziel/
Mit Attributen kopierencp -p oder rsync -a
Nur geänderte Dateienrsync -a quelle/ ziel/