navigation Navigation


cp


Das cp Tool in Linux wird zum Kopieren von Dateien und Verzeichnissen verwendet. Es gehört zu den grundlegenden Tools, die in nahezu jeder Linux-Distribution verfügbar sind. Die Funktionalität von cp ist umfangreich und bietet eine Vielzahl von Optionen, um das Kopieren flexibel und effizient zu gestalten.

Syntax

cp [OPTION] [-T] QUELLE ZIEL
cp [OPTION] QUELLE VERZEICHNIS
cp [OPTION] -t VERZEICHNIS QUELLE
Parameter
-a, --archive

Kopiert Dateien und Verzeichnisse rekursiv und bewahrt dabei alle Attribute (entspricht -dpR --preserve=all)


--attributes-only

Kopiert nur die Datei-Attribute, nicht den Datei-Inhalt


--backup[=CONTROL]

Erstellt eine Sicherung vorhandener Ziel-Dateien. -b funktioniert ähnlich, akzeptiert jedoch kein Argument.


--copy-contents

Kopiert den Inhalt von Spezial-Dateien, wenn rekursiv kopiert wird.


-d

Verhält sich wie --no-dereference --preserve=links, d.h. symbolische Links werden dereferenziert, sonder als Links kopiert.


--debug

Zeigt detailliert an, wie die Dateien kopiert werden, und impliziert -v (verbose).


-f, --force

Erzwingt das Kopiere, indem vorhandene Ziel-Dateien gelöscht werden, falls sie nicht geöffnet werden können (ignoriert bei -n).


-i, --interactive

Fragt nach, bevor vorhandene Dateien überschrieben werden (überstimmt -n).


-H

Folgt symbolischen Links, die als Quelle auf der Kommandozeile angegeben sind.


-l, --link

Erstellt Hardlinks anstelle von Kopien.


-L, --dereference

Folgt immer symbolischen Links in der Quelle.


-n, --no-clobber

Überschreibt keine vorhandenen Dateien und schlägt nicht fehl (überstimmt -u oder -i).


-P, --no-dereference

Folgt niemals symbolischen Links in der Quelle.


-p

Bewahrt Datei-Attribute wie Modus, Eigentümer und Zeitstempel (gleichbedeutend mit --preserve=mode, ownership, timestamps).


--preserve[=ATTR_LIST]

Bewahrt die angegebenen Datei-Attribute.


--no-preserve=ATTR_LIST

Bewahrt die angegebenen Attribute nicht.


--parents

Behält den gesamten Quellpfad bei und hängt ihn an das Zielverzeichnis an.


-R, -r, --recursive

Kopiert Verzeichnisse rekursiv.


--reflink[=WHEN]

Steuert das Erstellen von Copy-on-Write (CoW) Kopien.


--remove-destination

Löscht vorhandene Ziel-Dateien vor dem Kopieren, anders als --force.


--sparse=WHEN

Steuer das Erstellen von „sparse“ Dateien (Dateien mit Löchern).


--strip-trailing-slashes

Entfernt abschließende Schrägstriche aus den Quell-Argumenten.


-s, --symbolic-link

Erstelle symbolische Links anstatt Dateien zu kopieren.


-S, --suffix=SUFFIX

Ändert die Standard-Dateiendung von Sicherungsdateien.


-t, --target-directory=DIRECTORY

Kopiert alle Quell-Argumente in das angegebene Zielverzeichnis.


-T, --no-target-directory

Behandelt das Ziel als normale Datei, nicht als Verzeichnis.


--update[=UDPATE]

Aktualisiert nur vorhandene Dateien. UPDATE kann all, none oder older sein.


-u

Gleichbedeutend mit --update=older.


-v, --verbose

Zeigt an, was der Befehl gerade tut.


-x, --one-file-system

Bleibt innerhalb des aktuellen Dateisystems.


-Z

Setzt den SELinux-Sicherheitskontext der Zieldatei auf den Standardtyp.


--context[=CTX]

Wie -Z, aber erlaubt es, den Sicherheitskontext auf CTX zu setzen.


--help

Zeigt die Hilfe an und beendet das Programm.


--version

Zeigt Versionsinformationen und beendet das Programm.


Verwendung

Einfaches Kopieren einer Datei

Wenn man eine Datei von einem Ort an einen anderen kopieren möchte, kann man dies wie folgt tun.

Beispiel
cp ./datei.txt /home/users/documents/

Die Datei datei.txt wird in das Verzeichnis /home/user/documents/ kopiert. Wenn die Datei bereits existiert, wird sie überschrieben.


Kopieren mehrerer Dateien

Mehrere Dateien können in ein Verzeichnis kopiert werden, indem man die Dateinamen hintereinander angibt.

Beispiel
cd datei1.txt datei2.txt /home/user/backup 

Die Dateien datei1.txt und datei2.txt werden in das Verzeichnis /home/user/backup/ kopiert.


Rekursives Kopieren

Um ein gesamtes Verzeichnis samt Inhalt zu kopieren, muss die Option -r (rekursiv) verwendet werden.

Beispiel
cp -r /home/user/documents/ /home/user/backup/

Das gesamte Verzeichnis documents inklusive aller Unterverzeichnisse und Dateien wird in das Verzeichnis /home/user/backup/ kopiert.


Datei-Attribute beibehalten

Wenn man möchte, dass die Datei-Attribute (wie Zugriffsrechte, Eigentümer und Zeitstempel) beim Kopieren erhalten bleiben, kann man die Option -p verwenden.

Beispiel
cp -p bericht.txt /home/user/documents/

Die Datei bericht.txt wird in das Verzeichnis /home/user/documents/ kopiert und ihre ursprünglichen Zugriffsrechte, der Eigentümer und die Zeitstempel bleiben erhalten.


Interaktives Kopieren

Um sicherzustellen, dass man gefragt wird, bevor eine existierende Datei überschrieben wird, kann man die Option -i (interaktiv) verwenden.

Beispiel
cp -i bericht.txt /home/user/backup/
cp: overwrite '/home/user/backup/bericht.txt'? (yes/no) 

Falls bericht.txt bereits im Verzeichnis /home/user/backup/ existiert, wird eine Aufforderung angezeigt, bevor die Datei überschrieben wird.


Kopieren nur neuer oder geänderter Dateien

Um nur Dateien zu kopieren, die entweder neu sind oder neuer als die im Zielverzeichnis befindlichen, kann die Option -u verwendet werden.

Beispiel
cp -u bericht.txt /home/user/backup/

Die Datei bericht.txt wird nur dann in das Zielverzeichnis kopiert, wenn sie entweder dort nicht existiert oder die Datei im Quellverzeichnis neuer ist als die im Zielverzeichnis.


Wenn man symbolische Links kopieren möchte, ohne die Dateien auf die sie zeigen zu kopieren, kann man die Option -P verwenden.

Beispiel
cp -P verknuepfung /home/user/backup/

Der symbolische Link verknuepfung wird in das Verzeichnis /home/user/backup/ kopiert, ohne dass die Datei, auf die der Link zeigt, kopiert wird.