Der Shellbefehl cp wird in unixartigen Betriebssystemen, zu denen als prominenteste Vertreter auch sämtliche Linux-Derivate gehören, zum Kopieren von Dateien und Ordnern verwendet. Dabei stellt cp die Abkürzung für "copy" dar, was auf Deutsch "kopieren" heißt.
Die allgemeine Syntax des cp Befehls lautet:
cp [OPTIONEN] Quellpfad Zielpfad
wobei die Optionen nicht zwingend angegeben werden müssen.
Möchten Sie also beispielsweise eine einfache Datei kopieren, so müssen Sie folgenden Befehl verwenden
cp ./Datei ./KopieDerDatei
Zu betonen ist hierbei, dass Sie unterschiedliche Dateinamen wählen, da der Befehl sonst mit einer Fehlermeldung terminiert und die Datei nicht kopiert wird.
Dem Befehl cp können unterschiedliche Parameter übergeben werden. Einer der Wichtigsten ist der Parameter -r. Das "r" steht für "recursive" und bedeutet, dass das Objekt, welches im Quellpfad spezifiziert wurde, rekursiv kopiert wird. Das heißt, dass, wenn Sie einen Ordner kopieren, auch sämtliche Inhalte und Inhalte der Unterverzeichnisse, sowie Unterverzeichnisse der Unterverzeichnisse, die dieser Ordner enthält, kopieren.
Wenn sie einen Ordner kopieren wollen, müssen sie also dieses Flag "-r" immer setzen. Vergessen Sie dieses, wird Ihnen folgende Fehlermeldung ausgegeben: Verzeichnis "[VERZEICHNISNAME]" ausgelassen.
Um, als Beispiel, ein Backup von einem Ordner mit dem Namen "foobar" zu erstellen können Sie nun folgenden Befehl verwenden:
cp -r /foobar /foobar_backup
Mit der Option -i, für "interactive" fragt der Befehl vor dem Überschreiben alter Dateien nach, ob die neue oder alte Version der Datei gespeichert werden soll. Dieses tritt natürlich nur auf, wenn sie Dateien kopieren, dessen Dateiname bereits im System existiert.
Bei einer großen Menge von zu kopierenden Dateien empfiehlt es sich das Flag -v zu verwenden. Dieses zeigt den Fortschritt des Kopiervorgangs auf der Konsole an.
Wie bei allen Shellkommandos können die Parameter auch untereinander kombiniert werden. So könnten Sie sich beim Erstellen des Backups Ihres Ordners "foobar" auch gleichzeitig den Fortschritt des Backup-Prozesses anzeigen lassen. Dieses wäre mit dem Befehl:
cp -rv /foobar /foobar_backup
zu realisieren.
Ein weiteres, sehr hilfreiches Feature des Befehls sind die Wildcards. Dieses bedeutet, dass Sie im Dateinamen ein Sternchen (*) angeben können. Dieses steht dann für eine beliebige Kombination von Zeichen. So würde der Befehl
cp a*.conf /Backup
alle Dateien, die mit dem Buchstaben "a" beginnen und auf ".conf" enden, aus dem aktuellen Arbeitsverzeichnis in den Ordner /Backup kopieren.