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

16 nützliche „cp“-Befehlsbeispiele für Linux-Anfänger

Als Linux-Benutzer ist das Kopieren von Dateien und Verzeichnissen eine der häufigsten täglichen Aufgaben. Der Befehl task.cp wird verwendet, um die Dateien und Verzeichnisse über die Befehlszeile von einem lokalen Ort zu einem anderen zu kopieren. Der cp-Befehl ist in fast allen Unix- und Linux-ähnlichen Betriebssystemen verfügbar

In diesem Artikel zeigen wir 16 nützliche cp-Befehlsbeispiele speziell für Linux-Anfänger. Es folgt die grundlegende Syntax des cp-Befehls,

Eine Datei in eine andere Datei kopieren

# cp {Optionen} Quelldatei Zieldatei

Datei(en) in ein anderes Verzeichnis oder einen anderen Ordner kopieren

# cp {options} source_file   target_directory 

Verzeichnis in Verzeichnis kopieren

# cp {Optionen} Quellverzeichnis Zielverzeichnis

Lassen Sie uns zu den praktischen Beispielen des cp-Befehls springen,

Beispiel:1) Datei in Zielverzeichnis kopieren

Nehmen wir an, wir möchten die /etc/passwd-Datei zu Sicherungszwecken in das /mnt/backup-Verzeichnis kopieren, also führen Sie den folgenden cp-Befehl aus,

[email protected]:~# cp /etc/passwd /mnt/backup/
[email protected]:~#

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob es kopiert wurde oder nicht.

[email protected]:~# ls -l /mnt/backup/
total 4
-rw-r--r-- 1 root root 2410 Feb  3 17:10 passwd
[email protected]:~#

Beispiel:2 Mehrere Dateien gleichzeitig kopieren

Nehmen wir an, wir wollen mehrere (/etc/passwd, /etc/group &/etc/shadow) gleichzeitig in das Zielverzeichnis (/mnt/backup) kopieren

[email protected]:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/
[email protected]:~#

Beispiel:3) Interaktives Kopieren der Dateien (-i)

Wenn Sie die Dateien interaktiv von einem Ort zum anderen kopieren möchten, verwenden Sie die Option „-i“ im cp-Befehl, die interaktive Option funktioniert nur, wenn das Zielverzeichnis bereits dieselbe Datei enthält, das Beispiel ist unten gezeigt,

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
[email protected]:~#

Im obigen Befehl muss man manuell ‚y‘ eingeben, um den Kopiervorgang zuzulassen

Beispiel:4) Ausführliche Ausgabe während des Kopierbefehls (-v)

Wenn Sie die ausführliche Ausgabe des cp-Befehls wünschen, verwenden Sie die Option „-v“, das Beispiel ist unten gezeigt

[email protected]:~# cp -v /etc/fstab  /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Falls Sie sowohl den interaktiven Modus als auch den ausführlichen Modus verwenden möchten, verwenden Sie die Optionen „-iv“

[email protected]echi:~# cp -iv /etc/fstab  /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Beispiel:5) Kopieren eines Verzeichnisses oder Ordners (-r oder -R)

Um ein Verzeichnis von einem Ort an einen anderen zu kopieren, verwenden Sie -r oder -R Option im cp-Befehl. Nehmen wir an, wir wollen das Home-Verzeichnis des Benutzers linuxtechi nach „/mn/backup“,

kopieren
[email protected]:~# cp -r /home/linuxtechi /mnt/backup/
[email protected]:~#

Im obigen Befehl kopiert die Option -r die Dateien und das Verzeichnis rekursiv.

Überprüfen Sie nun den Inhalt des linuxtechi-Verzeichnisses am Zielort,

[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:41 file_5.txt
[email protected]:~#

Beispiel:6) Dateien und Verzeichnis während des Kopierens archivieren (-a)

Beim Kopieren eines Verzeichnisses mit dem cp-Befehl verwenden wir im Allgemeinen die Option -r oder -R, aber anstelle der Option -r können wir "-a" verwenden, wodurch die Dateien und das Verzeichnis während des Kopierens archiviert werden. Das Beispiel ist unten gezeigt,

[email protected]:~# cp -a /home/linuxtechi /mnt/backup/
[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:40 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:39 file_5.txt
[email protected]:~#

Beispiel:7) Nur kopieren, wenn die Quelldatei neuer ist als die Zieldatei (-u)

Es kann einige Szenarien geben, in denen Sie die Dateien nur kopieren möchten, wenn die Quelldateien neuer sind als die Zieldateien. Dies kann einfach mit „-u erreicht werden ”-Option im cp-Befehl.

Im Beispiel:6 haben wir das linuxtechi-Home-Verzeichnis in den Ordner /mnt/backup kopiert, im linuxtechi-Home-Ordner haben wir 5 txt-Dateien, bearbeiten wir einige davon und kopieren dann alle txt-Dateien mit „cp -u“.

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_1.txt
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_4.txt
[email protected]:/home/linuxtechi# cp -v -u  file_*.txt /mnt/backup/linuxtechi/
'file_1.txt' -> '/mnt/backup/linuxtechi/file_1.txt'
'file_4.txt' -> '/mnt/backup/linuxtechi/file_4.txt'
[email protected]:/home/linuxtechi#

Beispiel:8) Vorhandene Datei beim Kopieren nicht überschreiben (-n)

Es gibt einige Szenarien, in denen Sie die vorhandenen Zieldateien beim Kopieren nicht überschreiben möchten. Dies kann mit der Option „-n“ im „cp“-Befehl

erreicht werden
[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?

Wie Sie im obigen Befehl sehen können, werden wir aufgefordert, die vorhandene Datei zu überschreiben. Wenn Sie -n verwenden, wird es nicht zum Überschreiben aufgefordert und die vorhandene Datei wird auch nicht überschrieben.

[email protected]:~# cp -n /etc/passwd /mnt/backup/
[email protected]:~#

Beispiel:9) Erstellen symbolischer Links mit dem cp-Befehl (-s)

Nehmen wir an, wir möchten einen symbolischen Link einer Datei erstellen, anstatt sie mit dem cp-Befehl zu kopieren. Verwenden Sie für solche Szenarien die Option „-s“ im cp-Befehl, das Beispiel ist unten gezeigt

[email protected]:~# cp -s /home/linuxtechi/file_1.txt /mnt/backup/
[email protected]:~# cd /mnt/backup/
[email protected]:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb  5 18:37 file_1.txt -> /home/linuxtechi/file_1.txt
[email protected]:/mnt/backup#

Beispiel:10) Erstellen eines Hardlinks mit dem cp-Befehl (-l)

Wenn Sie einen festen Link einer Datei erstellen möchten, anstatt sie mit dem cp-Befehl zu kopieren, verwenden Sie die Option „-l“. Beispiel ist unten gezeigt,

[email protected]:~# cp -l /home/linuxtechi/devops.txt /mnt/backup/
[email protected]:~#

Wie wir bei Hardlinks wissen, haben Quell- und verknüpfte Datei dieselben Inode-Nummern, lassen Sie uns dies mit den folgenden Befehlen überprüfen,

[email protected]:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:~# ls -li /home/linuxtechi/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /home/linuxtechi/devops.txt
[email protected]:

Beispiel:11) Kopieren von Attributen von der Quelle zum Ziel (–nur Attribute)

Wenn Sie mit dem Befehl cp nur die Attribute von der Quelle zum Ziel kopieren möchten, verwenden Sie die Option „–attributes-only

# cp --attributes-only /home/linuxtechi/distributions.txt  /mnt/backup/
# ls -l /home/linuxtechi/distributions.txt
-rw-r--r-- 1 root root 41 Feb  5 19:31 /home/linuxtechi/distributions.txt
# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb  5 19:34 /mnt/backup/distributions.txt
#

Im obigen Befehl haben wir die Datei „distribution.txt“ aus dem linuxtechi-Home-Verzeichnis in den Ordner „/mnt/backup“ kopiert. Wenn Sie bemerkt haben, dass nur die Attribute kopiert und der Inhalt übersprungen wird. Die Größe der Datei „distribution.txt“ im Ordner „/mn/backup“ beträgt null Byte.

Beispiel:12) Erstellen einer Sicherung einer vorhandenen Zieldatei während des Kopierens (–backup)

Das Standardverhalten des cp-Befehls besteht darin, die Datei am Ziel zu überschreiben, wenn dieselbe Datei vorhanden ist. Wenn Sie während des Kopiervorgangs eine Sicherungskopie der vorhandenen Zieldatei erstellen möchten, verwenden Sie „–backup ‘-Option, Beispiel ist unten gezeigt,

[email protected]:~# cp --backup=simple -v /home/linuxtechi/distributions.txt /mnt/backup/distributions.txt
'/home/linuxtechi/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
[email protected]:~#

Wie Sie bemerkt haben, wurde eine Sicherung erstellt und das Tilde-Symbol am Ende der Datei angehängt. Die Sicherungsoption akzeptiert die folgenden Parameter

  • keine, aus – niemals Backups erstellen
  • nummeriert, t – nummerierte Backups erstellen
  • vorhanden, null – nummeriert, falls nummerierte Backups existieren, sonst einfach
  • einfach, nie – immer einfache Backups machen

Beispiel:13) Modus, Besitz und Zeitstempel beim Kopieren beibehalten (-p)

Wenn Sie die Dateiattribute wie Modus, Besitz und Zeitstempel beim Kopieren beibehalten möchten, verwenden Sie die Option -p im cp-Befehl, das Beispiel wird unten gezeigt,

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# cp -p devops.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 devops.txt
[email protected]:/home/linuxtechi# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:/home/linuxtechi#

Beispiel:14) Symbolischen Links im Quellcode beim Kopieren nicht folgen (-P)

Wenn Sie beim Kopieren nicht den symbolischen Links der Quelle folgen möchten, verwenden Sie die Option -P im cp-Befehl, das Beispiel ist unten gezeigt

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# ls -l /opt/nix-release.txt
lrwxrwxrwx 1 root root 14 Feb  9 12:28 /opt/nix-release.txt -> os-release.txt
[email protected]:/home/linuxtechi#
[email protected]:/home/linuxtechi# cp -P os-release.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l /mnt/backup/os-release.txt
-rw-r--r-- 1 root root 35 Feb  9 12:29 /mnt/backup/os-release.txt
[email protected]:/home/linuxtechi#

Hinweis: Das Standardverhalten des cp-Befehls besteht darin, beim Kopieren den symbolischen Links in der Quelle zu folgen.

Beispiel:15) Kopieren Sie die Dateien und das Verzeichnis zwangsweise mit der Option -f

Es kann einige Szenarien geben, in denen eine vorhandene Zieldatei nicht geöffnet und entfernt werden kann. Und wenn Sie eine fehlerfreie Datei haben, die anstelle der vorhandenen Zieldatei kopiert werden kann, verwenden Sie den Befehl cp zusammen mit der Option -f

[email protected]:/home/linuxtechi# cp -f distributions.txt  /mnt/backup/
[email protected]:/home/linuxtechi#

Beispiel:16) Sparse-Dateien mit der Sparse-Option im cp-Befehl kopieren

Sparse ist eine reguläre Datei, die eine lange Folge von Null-Bytes enthält, die keinen physischen Festplattenblock verbrauchen. Einer der Vorteile von Sparse-Dateien ist, dass sie nicht viel Speicherplatz verbrauchen und der Lesevorgang für diese Datei ziemlich schnell wäre.

Nehmen wir an, wir haben ein spärliches Cloud-Image mit dem Namen „ubuntu-cloud.img“

[email protected]:/home/linuxtechi# du -sh ubuntu-cloud.img
12M     ubuntu-cloud.img
[email protected]:/home/linuxtechi# cp --sparse=always ubuntu-cloud.img /mnt/backup/
[email protected]:/home/linuxtechi# du -sh /mnt/backup/ubuntu-cloud.img
0       /mnt/backup/ubuntu-cloud.img
[email protected]:/home/linuxtechi#

Bei der Verwendung von Sparse-Parametern im cp-Befehl können verschiedene Optionen verwendet werden,

  • sparse=auto
  • sparse-immer
  • sparse=nie

Das ist alles aus diesem Artikel, ich hoffe, er hilft Ihnen, den cp-Befehl besser zu verstehen. Bitte teilen Sie uns Ihr Feedback und Ihre Kommentare mit


Linux
  1. 10 „rm“-Befehlsbeispiele für Linux-Anfänger

  2. 10 nützliche ncat (nc)-Befehlsbeispiele für Linux-Systeme

  3. 10 Beispiele für Linux-Cat-Befehle für Anfänger

  4. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  5. Linux-Killall-Befehl für Anfänger (8 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

16 praktische Beispiele für Linux LS-Befehle für Anfänger

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)