Cp

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Standardprogramme Office und Co ‹ Cp


Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.



cp.

cp steht für copy und ist der Befehl zum Kopieren von Dateien und Verzeichnissen.

Installation

Das Programm cp ist im essentiellen Paket

von Debian enthalten und ist deshalb auf jedem System installiert.


Verwendung

Die allgemeine Syntax von cp lautet

user@debian:~$ cp [OPTIONEN] QUELLE ZIEL

QUELLE und ZIEL können dabei sowohl Dateien als auch ein Verzeichnis sein.

Option Beschreibung
- a oder --archive Beibehaltung von Besitzer-, Gruppen- und Zugriffsrechten und Erstellungs-, Modifikations- und Zugriffsdaten (entspricht -dR --preserve=all)
- b oder --backup Sichert Dateien vor dem Überschreiben, wenn diese unterschiedlich sind
- d erhält symbolische Links, folgt ihnen aber nicht beim Kopieren (entspricht -P --preserve=links)
- i oder --interactive fragt vor Überschreiben nach
- l oder --link kopiert nicht, sondern erstellt harten Link
- n oder --no-clobber niemals vorhandene Dateien überschreiben (-i wird wirkungslos)
- p (klein) oder --preserve=mode,ownership,timestamps erhält Standard-Dateiattribute, wie Zeitpunkt des letzten Schreibzugriffs
- P (groß) oder --no-dereference niemals symbolischen Links in der Quelle folgen
- r oder -R oder --recursive Verzeichnisse rekursiv kopieren
- s oder --symbolic-link kopiert nicht, sondern erstellt symbolischen Link
- u oder --update kopiert nur, wenn Zieldatei älter als Quelldatei
- v oder --verbose zeigt den Kopierfortschritt an

cp kennt noch eine Reihe von weiteren Optionen, die man mit Hilfe der Option --help aufrufen kann. Oder man schaut in die Manpages von cp (Siehe auch: Dokumentation_Finden).

Hinweis.png Hinweis: Um zu Prüfen, ob die Dateiübertragung vollständig ausgeführt wurde (auch die Cacheleerung), kann nach der Übertragung einen Sync-Befehl geben:
user@debian:~$  sync



Beispiele

Die Datei datei.txt aus dem aktuellen Verzeichnis nach /Dokumente kopieren, falls diese neuer ist als die bestehende:

user@debian:~$ cp -u datei.txt /Dokumente/datei.txt

Die Dateien datei.txt, dokument.odt nach /Dokumente kopieren, wenn neuer als bestehende, und Kopierfortschritt anzeigen

user@debian:~$ cp -uv datei.txt dokument.odt /Dokumente

Dateien mit bestimmtem Anfangsbuchstaben da*.txt, do*.odt kopieren, wenn neuer als bestehende, und Kopierfortschritt anzeigen

user@debian:~$ cp -uv da*.txt do*.odt /Dokumente

Im letzten Beispiel werden alle Dateien aus /home/Patsche samt der verstecken Einstellungsdateien rekursiv ins Verzeichnis Sicherungen kopiert, welches sich auf dem eingehängten Laufwerk sda9 befindet.

user@debian:~$ cp -a /home/Patsche/. /media/sda9/Sicherungen

Dateien/Ordner ausschließen

Leider enthält cp keine --exclude-Option wie andere Kopierprogramme, jedoch gibt bereits die Shell einen Weg her, der es ermöglicht ressourcensparend Muster auszuschließen. Dazu muss z.B. in bash die Shell-Option extglob gesetzt werden, die den erweiterten Musterabgleich aktiviert (extended globbing):

user@debian:~$ shopt -s extglob

Der Befehl muss jedesmal ausgeführt werden oder man trägt ihn in die bashrc ein. Im Folgenden der angewandte cp-Befehl:

user@debian:~$ cp -av /QUELLE/!(Datei1.txt
user@debian:~$ Festplattenabbild*
user@debian:~$ Ordner/Unterordner1) /ZIEL/

Durch das Muster !() werden alle Dateien und Ordner, die mit "Datei1.txt", "Festplattenabbild" und "Unterorder1" beginnen, ausgeschlossen. Darüber hinaus werden alle Dateien und Ordner von QUELLE nach ZIEL kopiert.


Live-USB-Stick erstellen

Man kann auch mit Hilfe von cp einen Live-USB-Stick erstellen ohne dd oder UNetbootin. dazu muss aber der Stick ausgehängt sein. Außerdem ist es wichtig, dass man als Ziel die Gerätedatei anspricht und nicht den Namen des Einhängepunktes. Man verwendet zum Erstellen folgenden Befehl:

root@debian:~# cp [Quelle] [Ziel]

Also:

root@debian:~# cp PFAD/ZUR/ISO.iso /dev/USB_DEVICE

Beispiel:

root@debian:~# cp Downloads/debian-7.2.0-amd64-netinst /dev/sdb