> Die vollständige Liste der Artikel steht in [llms.txt](https://docs.f3cloud.com/llms.txt). Jede Seite gibt es auch als Markdown, dazu einfach .md an die Adresse anhängen. Diese Seite als Markdown: [https://docs.f3cloud.com/de/technical-docs/cp-command-tutorial.md](https://docs.f3cloud.com/de/technical-docs/cp-command-tutorial.md).

# Der Befehl cp in Linux – Dateien und Verzeichnisse kopieren

So kopieren Sie Dateien und Ordner mit dem Befehl cp in Linux. Syntax und Beispiele, Kopieren mit Erhalt der Rechte, ohne Überschreiben, mit versteckten Dateien, Sicherungskopien beim Überschreiben, Fortschrittsanzeige und häufige Fehler.

**cp** (vom englischen copy) ist der Standardbefehl in Linux zum Kopieren von Dateien und Ordnern. Er ist in jeder Distribution vorhanden, Sie müssen also nichts installieren.

Unten zeigen wir die wichtigsten Handgriffe, die Ihnen bei der Arbeit mit dem Server nützen, vom Kopieren einer einzelnen Datei bis zum Umzug einer Website mit allen Rechten. Die Beispiele haben wir unter Debian 12 geprüft, unter Ubuntu und anderen Distributionen mit GNU coreutils funktionieren sie genauso.

***

### Syntax

```bash
cp [Optionen] Quelle Ziel
```

Ist das Ziel ein vorhandener Ordner, wird die Datei unter demselben Namen hineinkopiert. Gibt es keinen solchen Ordner, legt `cp` eine Kopie mit dem angegebenen Namen an.

***

### Grundlegende Beispiele

```bash
# Datei in einen Ordner kopieren
cp config.yml /root/backup/

# Kopie einer Datei unter anderem Namen daneben anlegen, zum Beispiel vor dem Bearbeiten der Einstellungen
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# Mehrere Dateien in einen Ordner kopieren
cp file1.txt file2.txt /root/backup/

# Ordner mit dem gesamten Inhalt kopieren
cp -r /var/www/site /root/backup/
```

***

### Nützliche Optionen

| Option | Was sie bewirkt |
| --- | --- |
| `-r` | Kopiert Ordner komplett, mit dem gesamten Inhalt |
| `-a` | Archivmodus. Kopiert Ordner und erhält Rechte, Eigentümer, Zeitstempel und Links |
| `-p` | Erhält bei der Kopie Rechte, Eigentümer und Änderungsdatum |
| `-i` | Fragt nach, bevor eine vorhandene Datei überschrieben wird |
| `-n` | Überschreibt vorhandene Dateien niemals |
| `-u` | Kopiert nur, wenn die Quelle neuer ist oder die Datei im Ziel noch fehlt |
| `-b` | Sichert vor dem Überschreiben die alte Datei mit einer Tilde am Ende des Namens |
| `-v` | Gibt jede kopierte Datei aus |

***

### Website mit allen Rechten kopieren

Für den Umzug von Websites und Einstellungen verwenden Sie `-a`. So behält die Kopie Eigentümer, Zugriffsrechte und Zeitstempel, und der Webserver kann ohne weitere Einrichtung mit den Dateien arbeiten.

```bash
# Inhalt des Website-Ordners samt versteckten Dateien kopieren
cp -a /var/www/site/. /var/www/site-copy/
```

> **So kopieren Sie versteckte Dateien.**
>
> Der Punkt am Ende des Pfads `/var/www/site/.` bedeutet „der gesamte Inhalt des Ordners“, einschließlich versteckter Dateien wie `.htaccess` und `.env`. Verwenden Sie dafür nicht das Muster `.*`. In älteren bash-Versionen erfasst es auch `..`, also den übergeordneten Ordner, und `cp` kopiert dann viel mehr als nötig.

***

### Wichtige Dateien nicht überschreiben

```bash
# Vor dem Überschreiben jeder Datei nachfragen
cp -i new.conf /etc/app/app.conf

# Vorhandene Dateien nicht anrühren, nur fehlende kopieren
cp -rn /root/backup/site/. /var/www/site/

# Überschreiben, aber die alte Version als app.conf~ behalten
cp -b new.conf /etc/app/app.conf
```

***

### Nur geänderte Dateien kopieren

```bash
# Kopie aktualisieren, übertragen werden nur neue und geänderte Dateien
cp -au /var/www/site/. /root/backup/site/
```

Für regelmäßige Kopien und große Ordner ist `rsync` bequemer, es kann dasselbe und zeigt zusätzlich den Fortschritt an.

***

### Fortschritt beim Kopieren anzeigen

`cp` hat keine Fortschrittsanzeige, und die Option `-v` gibt nur die Dateinamen aus. Für große Dateien und Ordner verwenden Sie `rsync`.

```bash
# rsync installieren, falls es noch fehlt
apt install -y rsync

# Ordner mit einer Gesamtanzeige des Fortschritts kopieren
rsync -a --info=progress2 /var/www/site/ /root/backup/site/
```

Dateien zwischen Servern kopieren Sie bequem mit `scp` oder `rsync`, Beispiele finden Sie im Artikel [über Backups](https://docs.f3cloud.com/de/client-area/protect-vps-from-unauthorised-access/backups.md).

***

### Häufige Fragen

<details>

<summary>Fehler „-r not specified; omitting directory“</summary>

Sie versuchen, einen Ordner ohne die Option `-r` zu kopieren. Ergänzen Sie `-r` oder `-a`, zum Beispiel `cp -a /var/www/site /root/backup/`.

</details>

<details>

<summary>Fehler „No space left on device“</summary>

Auf der Festplatte ist kein Platz mehr frei. Mit dem Befehl `df -h` sehen Sie, wie viel noch frei ist. Löschen Sie Überflüssiges oder wechseln Sie auf einen Tarif mit größerer Festplatte. Die teilweise kopierte Datei im Ziel sollten Sie besser löschen.

</details>

<details>

<summary>Fehler „Permission denied“</summary>

Ihr Benutzer hat keine Rechte, die Quelle zu lesen oder in den Zielordner zu schreiben. Führen Sie den Befehl mit `sudo` aus oder prüfen Sie die Rechte mit dem Befehl `ls -l`.

</details>

<details>

<summary>Kann ich das Kopieren abbrechen?</summary>

Ja, drücken Sie <kbd>Ctrl</kbd> + <kbd>C</kbd>. Die bereits kopierten Dateien bleiben erhalten, die letzte Datei ist aber möglicherweise nur teilweise kopiert. Um den Rest später nachzukopieren, starten Sie den Befehl erneut mit der Option `-u` oder verwenden Sie `rsync`.

</details>

<details>

<summary>Nach dem Kopieren funktioniert die Website nicht mehr</summary>

Höchstwahrscheinlich hat sich der Eigentümer der Kopie geändert, weil Sie ohne die Option `-a` kopiert haben. Stellen Sie den Eigentümer unter Ubuntu und Debian mit dem Befehl `chown -R www-data:www-data /var/www/site-copy` wieder her oder kopieren Sie den Ordner erneut mit `-a`.

</details>

***

### Unsere Ressourcen

**Telegram-Kanal:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Hosting-Website:** [https://f3cloud.com](https://f3cloud.com/de)
