Der cp-Befehl wird verwendet, um Dateien oder Verzeichnisse von einem Ort zu einem anderen zu kopieren. Der cp steht für “copy” (engl. für “kopieren”).

    Syntax

    cp [OPTIONEN] Quelldatei(en) Ziel
    • Quelldatei(en): Steht für die Datei, Dateien oder das Verzeichnis, das kopiert werden soll.
    • Ziel: Steht für den Ort, an dem die Kopie erstellt werden soll.

    Einige nützliche Optionen für das cp-Kommando sind:

    • -a oder --archive: Übernimmt alle Eigenschaften der Quelldatei, einschließlich der Berechtigungen, Eigentümer und Zeitstempel.
    • -f oder --force: Überschreibt die Zieldatei, falls sie bereits existiert.
    • -i oder --interactive: Fragt den Benutzer, ob die Zieldatei überschrieben werden soll, falls sie bereits existiert.
    • -r, -R --recursive: Kopiert das angegebene Verzeichnis und alle Unterverzeichnisse rekursiv.
    • -v oder --verbose: Gibt detaillierte Informationen über den Fortschritt des Kopiervorgangs aus.
    • -p oder --preserve[=mode,ownership,timestamps]: Erhaltung der ursprünglichen Dateiberechtigungen, Zeitstempel und Besitzerinformationen.
    • -n oder --no-clobber: Verhindert, dass eine bestehende Datei überschrieben wird.
    • -u oder --update: Kopiert nur dann, wenn die Quellendatei neuer ist als die Zieldatei oder wenn die Zieldatei nicht existiert.

    Beispiele

    Kopieren einer einzelnen Datei

    cp meine_datei.txt neue_datei.txt

    Kopiert die Datei meine_datei.txt in eine neue Datei namens neue_datei.txt.

    $ cp meine_datei.txt neue_datei.txt
    $ ls
    meine_datei.txt neue_datei.txt
    $

    Ein Verzeichnis kopieren

    cp -r mein_verzeichnis neues_verzeichnis

    Erstellt eine kopie von dem Verzeichnis mein_verzeichnis/ und dessen gesamten Inhalt, im Verzeichnis neues_verzeichnis/.

    $ cp -r mein_verzeichnis neues_verzeichnis
    $ ls
    mein_verzeichnis neues_verzeichnis
    $

    Berechtigungen, Eigentümer und Zeitstempel erhalten

    cp -a mein_verzeichnis neues_verzeichnis

    Durch diesen Befehl wird das Verzeichnis mein_verzeichnis/ und dessen gesamten Inhalt in das Verzeichnis neues_verzeichnis/ kopiert, wobei die Dateirechte und andere Metadaten beibehalten werden.

    $ cp -a mein_verzeichnis neues_verzeichnis
    $ ls -l
    drwxr-xr-x  2 benutzer benutzer  4096 Mar  7 12:00 mein_verzeichnis
    drwxr-xr-x  2 benutzer benutzer  4096 Mar  7 12:01 neues_verzeichnis
    $

    Dateien und Verzeichnisse von einem Verzeichnis in ein anderes zu kopieren

    cp -r /pfad/zum/quellverzeichnis /pfad/zum/zielverzeichnis

    Kopiert das Verzeichnis quellverzeichnis/ und dessen gesamten Inhalt in das Verzeichnis zielverzeichnis/.

    $ cp -r /home/benutzer/mein_verzeichnis /home/benutzer/neues_verzeichnis
    $ ls /home/benutzer
    mein_verzeichnis neues_verzeichnis
    $

    In das aktuelle Verzeichnis kopieren

    cp -r /pfad/zum/quellverzeichnis .

    Hiermit wird das Verzeichnis quellverzeichnis/ und dessen gesamten Inhalt in das aktuelle Arbeitsverzeichnis kopiert.

    $ cp -r /home/benutzer/mein_verzeichnis .
    $ ls
    mein_verzeichnis
    $

    Mehrere Dateien oder Verzeichnisse auf einmal kopieren

    cp -r /pfad/zum/quellverzeichnis1 /pfad/zum/quellverzeichnis2 /pfad/zum/zielverzeichnis
    • Dieser Befehl kopiert die Verzeichnisse /pfad/zum/quellverzeichnis1 und /pfad/zum/quellverzeichnis2 in das Verzeichnis /pfad/zum/zielverzeichnis. Auch hier wird die Option -r verwendet, um die Verzeichnisse rekursiv inklusive aller Unterverzeichnisse und Dateien zu kopieren.
    $ ls /pfad/zum/quellverzeichnis1
    datei1.txt datei2.txt
    $ ls /pfad/zum/quellverzeichnis2
    datei3.txt datei4.txt
    $ cp -r /pfad/zum/quellverzeichnis1 /pfad/zum/quellverzeichnis2 /pfad/zum/zielverzeichnis
    $ ls /pfad/zum/zielverzeichnis
    datei1.txt datei2.txt datei3.txt datei4.txt
    $

    Links