cp - Kopieren von Dateien
cp kopiert Dateien und Verzeichnisse

Syntax: cp [-Option] <Quelldatei> <Zieldatei>
Syntax: cp [-Option] <Quellen> <Zielverzeichnis>

Beschreibung:

cp ist das universelle Kopierprogramm. Es Erstellt identische Kopien von Dateien und Verzeichnissen (auch rekursiv). Wird als Ziel (letzte Angabe in der Kommandozeile) ein Verzeichnis angegeben, dann werden alle angegebenen Dateien in dieses kopiert. Werden mehr als zwei Dateien angegeben, wird eine Fehlermeldung ausgegeben, wenn das Ziel kein Verzeichnis ist.

Beim Kopieren könnt auch Backups, nur Updates oder Links erzeugt werden.
 

Anmerkungen:


Defaultmäßig kopiert cp keine Verzeichnisse. Dies kann aber durch die Optionen -r und -R erzwungen werden.

Optionen:

-a
--archive
(archiv) ab dem aktuellen Verzeichnis werden die Dateien einschliesslich ihrer Struktur gespeichert. Entspricht der Option -dpR
-b
--backup
(backup) sichert Dateien im Zielverzeichnis vor dem Überschreiben durch das Anhängen einer Tilde-Extension (~). Dieser Mechanismus funktioniert nur einmal - es wird nur eine Tilde angehängt.
-d
--no-dereferenze
(no-dereference) kopiert die Links und nicht die Dateien, auf die der Link zeigt
-f
--force
(force) Dateien im Zielverzeichnis werden ohne Rückfrage überschrieben. Die Option -i wird ignoriert.
-i
--interactive
(interactive) erwartet Bestätigung vor dem Überschreiben bereits existierender Dateien
-l
--link
(link) legt Links anstelle von Kopien (nur bei normalen Dateien) an.
-P
--parents
(parents path) die Quelldateien werden mit Pfad relativ zum Zielverzeichnis kopiert. Die Zielangabe muss ein Verzeichnis sein. Nicht vorhandene Zielverzeichnisebenen werden automatisch erstellt.
-p
--preverse
(preserve) die Zugriffsrechte Eigentümer- und Zeitangaben der Quelldatei werden auf die Zieldatei übertragen; nicht jedoch die SUID und SGID Bits.
-R
--recursive
(recursive) Verzeichnisse und spezielle Dateien werden einschliesslich aller Unterverzeichnisse und Dateien kopiert.
-r

 

ab dem aktuellen Verzeichnis werden alle Dateien in den Unterverzeichnissen einschliesslich der Verzeichnisse mitkopiert. Diese Option funktioniert nicht bei bei speziellen Dateien wie z.B. den Dateien im Verzeichnis /dev.
-S <Suffix>
--suffix <Suffix>
(suffix) (Endung) sichert die Dateien vor dem Überschreiben durch Anhängung der Endung <Suffix>; Voreinstellung ist ~, sofern in der Variablen $SIMPLE_BACKUP_SUFFIX nichts anderes angegeben wurde.
-s
--symbolic-link
(symbolic link) erzeugt symbolische Links anstelle von Kopien. Quelldateien müssen mit ihrem absoluten Pfad angegeb werden, wenn das Zielverzeichnis nicht dem aktuellen Verzeichnis entspricht. (Dateisysteme, die keine symbolischen Links erlauben, produzieren eine Fehlermeldung).
-u
--update
(update) Zieldateien werden nur durch jüngere Quelldateien überschrieben.
-V <Backuptyp>
--version-control <Backuptyp>
 
 
 

 

{numbered, existing, simple} (version-control) beim mehrfachen Kopieren werden Multiple Backups erstellt.

Der <Backuptyp> (die Art der Backupbezeichnung) wird durch die Umgebungsvariable $VERSION_CONTROL bestimmt. Die Option -V überschreibt die Angaben in der Variablen. Wird weder die Option angegeben noch die Environmentvariable gesetzt, dann ist der <Backuptyp> 'existing' voreingestellt.

-v
--verbose
(verbose) zeigt den Kopiervorgang an.
-x
--one-file-system
(one file-system) ignoriert Unterverzeichnisse, die in anderen Dateisystemen angesiedelt sind
--help Hilfe
--version Programmversion

Umgebungs-Variablen:

$SIMPLE_BACKUP_SUFFIX bestimmt das Suffix einfacher Backups. Voreingestellt ist ~ (die Tilde).
$VERSION_CONTROL legt Suffixe mehrfacher Backups fest.

Gültige Werte sind:

t oder numbered Backups werden durchgehend nummeriert.
nil oder existing Backups werden nummeriert, wenn bereits nummerierte Backups vorliegen.
never oder simple Es werden nur einfache Backups gemacht; entspricht der Option -b.

 

Siehe auch:   ln   mv   rm

Beispiele für die Nutzung des Programms:
Alle versteckten Dateien aus /etc/skel nach /root kopieren:

user@sonne> cp -a /etc/skel/.[a-z,A-Z,0-9]* /root

 

Verzeichnis unter Beibehaltung der Struktur kopieren:

user@sonne> cp -b /usr/locale /home/ziel

 

Autor: Omega-X