GNU/Linux >> LINUX-Kenntnisse >  >> Linux

cp-Befehl unter Linux:7 praktische Beispiele

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.

erstellt

Wenn 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.

kopieren

Sehen 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ändert

Dies 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.


Linux
  1. Linux-Shutdown-Befehl:5 praktische Beispiele

  2. 5 praktische Beispiele des dd-Befehls unter Linux

  3. Linux-cp-Befehl

  4. 10 praktische Beispiele für Linux-nm-Befehle

  5. 8 Linux TR-Befehlsbeispiele

12 praktische Beispiele für In Command unter Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Echo-Befehl unter Linux:7 praktische Beispiele

Praktischer Ping-Befehl in Linux-Beispielen

id-Befehlsbeispiele in Linux