Einer der Befehle, die Sie unter Linux kennen müssen, ist cp. Es wird oft als Kopierbefehl in Linux bezeichnet und ist eigentlich die Abkürzung für Kopieren und es macht genau das, was der Name vermuten lässt:Es kopiert.
cp wird zum Kopieren von Dateien von einem Ort zum anderen verwendet. cp kann auch verwendet werden, um ganze Verzeichnisse an einen neuen Ort zu kopieren. Sie können damit auch mehrere Dateien und Verzeichnisse kopieren.
7 Beispiele für die Verwendung des cp-Befehls in Linux
Sehen wir uns an, wie Sie den cp-Befehl für verschiedene Zwecke verwenden können:
1. So kopieren Sie eine Datei
Das einfachste Beispiel wäre das Kopieren einer Datei. Dazu müssen Sie nur die Quelldatei und das Zielverzeichnis bzw. die Zieldatei angeben.
cp source_file target_directory/target_file
Wenn im obigen Beispiel target_fille nicht im target_directory vorhanden ist, wird target_file.
erstelltWenn die neue_Datei jedoch bereits vorhanden ist, wird sie ohne Nachfrage überschrieben. Das bedeutet, dass der Inhalt der vorhandenen Zieldatei mit dem Inhalt der Quelldatei geändert wird.
Ich werde Ihnen später in diesem Tutorial zeigen, wie Sie mit dem Überschreiben von Dateien umgehen.
Denken Sie daran :Standardmäßig überschreiben cp-Befehle, wenn die Zieldatei bereits vorhanden ist. Dieses Verhalten kann mit der Option -n oder -i geändert werden, was später erklärt wird.
2. So kopieren Sie mehrere Dateien
Wenn Sie mehrere Dateien gleichzeitig an einen neuen Speicherort kopieren möchten, können Sie dies folgendermaßen tun:
cp file1 file2 file3 fileN target_directory
Dadurch werden alle angegebenen Dateien in das Zielverzeichnis kopiert. Wenn das Zielverzeichnis Dateien enthält, die mit dem Namen der Quelldatei(en) übereinstimmen, werden diese überschrieben.
3. Mehrere Möglichkeiten, mit dem Überschreiben beim Kopieren von Dateien umzugehen
Wahrscheinlich möchten Sie nicht immer, dass Ihre vorhandenen Zieldateien überschrieben werden, und das ist völlig logisch.
Um zu verhindern, dass vorhandene Dateien überschrieben werden, können Sie die Option -n verwenden. Auf diese Weise überschreibt cp keine vorhandenen Dateien.
cp -n source_file target_directory
Aber vielleicht möchten Sie einige Dateien überschreiben. Sie können die interaktive Option -i verwenden und Sie werden gefragt, ob Sie vorhandene Dateien überschreiben möchten.
cp -i source_file target_directory
cp: overwrite 'target_directory/source_file'?
Sie können y eingeben, um die vorhandene Datei zu überschreiben, oder n, um sie nicht zu überschreiben.
Es gibt auch eine Option zum Erstellen automatischer Backups. Wenn Sie die Option -b mit dem Befehl cp verwenden, werden die vorhandenen Dateien überschrieben, aber zuvor wird eine Sicherungskopie der überschriebenen Dateien erstellt.
cp -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~
Die Sicherung der Datei endet mit ~.
Sie können auch die Aktualisierungsoption -u verwenden beim Überschreiben. Mit der Option -u werden Quelldateien nur dann an den neuen Speicherort kopiert, wenn die Quelldatei neuer als die vorhandene Datei ist oder wenn sie nicht im Zielverzeichnis vorhanden ist.
Zusammenfassend:
- -i :Vor dem Überschreiben bestätigen
- -n :Kein Überschreiben
- -b :Überschreiben mit Backup
- -u :Überschreiben, wenn die Zieldatei alt ist oder nicht existiert
4. So kopieren Sie ein Verzeichnis unter Linux
Sie können den cp-Befehl auch verwenden, um ein Verzeichnis in Linux einschließlich aller seiner Dateien und Unterverzeichnisse zu kopieren. Sie müssen hier die Option -r verwenden, die für rekursiv steht.
cp -r source_dir target_dir
Dadurch wird das gesamte source_dir in target_dir kopiert. Nun wird das Quellverzeichnis ein Unterverzeichnis des Zielverzeichnisses sein.
ls target_dir
source_dir
5. Wie man nur den Inhalt eines Verzeichnisses kopiert, nicht das Verzeichnis selbst
Im vorherigen Beispiel haben Sie das gesamte Verzeichnis an einen neuen Speicherort kopiert.
Wenn Sie aber nur den Inhalt des Quellverzeichnisses in das Zielverzeichnis kopieren möchten, sollten Sie / hinzufügen. am Ende des Quellverzeichnisses. Dies zeigt an, dass Sie nur den Inhalt des Quellverzeichnisses kopieren möchten.
Sehen wir es uns an einem Beispiel an:
ls source_dir
source_file_1 source_file2
Kopieren Sie nun den Inhalt des Quellverzeichnisses:
cp -r source_dir/. target_dir
Wenn Sie jetzt den Inhalt des Zielverzeichnisses überprüfen, sehen Sie, dass nur der Inhalt des Quellverzeichnisses kopiert wurde.
ls target_dir
source_file_1 source_file2
6. So kopieren Sie mehrere Verzeichnisse
Sie können auch mehrere Verzeichnisse gleichzeitig mit dem cp-Befehl unter Linux kopieren.
Verwenden Sie es einfach genauso wie für ein einzelnes Verzeichnis.
cp -r source_dir1 source_dir2 source_dir3 target_dir
Es ist immer das letzte Argument im Befehl, das als Zielverzeichnis verwendet wird.
Wenn Sie nur den Inhalt mehrerer Verzeichnisse auf einmal kopieren möchten, können Sie das auch tun:
cp -r source_dir1/. source_dir2/. source_dir3/. target_dir
Tatsächlich können Sie Verzeichnisse, deren Inhalte und Dateien komplett mischen.
cp -r source_dir1 source_dir2/. source_file target_dir
Tipp :Sie können den ausführlichen Modus mit der Option -v verwenden, um zu sehen, welche Dateien kopiert werden.
7. So bleiben die Attribute beim Kopieren erhalten
Wenn Sie eine Datei an einen neuen Speicherort kopieren, werden ihre Attribute wie die Dateiberechtigungen und die Dateizeitstempel geändert.
Wenn Sie die Attribute der Originaldatei beibehalten möchten, können Sie die Dateien mit der Option -p.
kopierenSehen wir es uns an einem Beispiel an.
ls -l /etc/services
-rw-r--r-- 1 root root 19183 Dec 26 2016 /etc/services
Wenn ich versuche, diese Datei normal zu kopieren, werden ihre Attribute geändert:
cp /etc/services .
ls -l services
-rwxrwxrwx 1 abhishek abhishek 19183 Nov 25 20:45 service
Aber wenn ich die Option p verwende, behält die kopierte Datei den Modus, den Besitz und den Zeitstempel.
cp -p /etc/services .
ls -l services
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services
Wie Sie sehen können, haben Sie den Zugriffsmodus und den Zeitstempel der Quelldatei mit der Option -p beibehalten.
Aber warte! Sollte es nicht auch das Eigentum an den Quelldateien bewahren? Aber hier wurde der Eigentümer (root) der Quelldatei auf abhishek.
geändertDies liegt daran, dass nur root die Berechtigung hat, den Besitz einer Datei zu ändern, die root gehört. Wenn Sie die Option -p mit einer Datei verwenden, die nicht root gehört, behält sie den Besitz. Oder Sie können den Befehl mit sudo ausführen, um den Besitz einer Datei zu bewahren, die root gehört.
Sie können auch die Attribute angeben, die Sie beibehalten möchten. Aber dann müssen Sie die Option –preserve verwenden.
cp --preserve=timestamp /etc/services .
ls -l services
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services
Wie Sie in der obigen Ausgabe sehen können, wurde nur der Zeitstempel der Quelldatei beibehalten.
Sie können den cp-Befehl weiter untersuchen, indem Sie seine Manpage durchsuchen. Die hier gezeigten Beispiele sind die häufigsten, die Sie als Linux-Benutzer, Systemadministrator oder Softwareentwickler verwenden werden.
Wenn Ihnen dieses Tutorial gefallen hat, teilen Sie diesen Artikel bitte in den sozialen Medien und verschiedenen Foren.