Wéi benotzen ech cp Kommando effektiv a Linux [14 Beispiller]


Kuerz: An dësem einfach ze verfollegen Guide wäerte mir e puer praktesch Beispiller vum cp Kommando diskutéieren. Nodeems Dir dëse Guide gefollegt hutt, kënnen d'Benotzer Dateien a Verzeichnisser einfach op Linux kopéieren mat der Kommandozeil-Interface.

Als Linux Benotzer interagéiere mir mat de Kopiedateien an Verzeichnisser. Bestëmmt kënne mir e grafeschen Dateiemanager benotze fir d'Kopieoperatioun auszeféieren. Wéi och ëmmer, déi meescht Linux Benotzer léiwer de cp Kommando ze benotzen wéinst senger Einfachheet a räicher Funktionalitéit.

An dësem Ufängerfrëndleche Guide léiere mir iwwer de cp Kommando. Wéi den Numm et scho seet, gëtt de cp Kommando benotzt fir Dateien an Verzeichnisser op engem bestëmmte Wee ze kopéieren.

Während dësem Guide wäerte mir d'Benotzung vum cp Kommando verstoen mat praktesche Beispiller déi alldeeglech benotzt kënne ginn.

Also loosst eis ufänken.

Inhaltsverzeechnes

Cp Kommando Syntax

D'Syntax vum cp Kommando ass identesch mat anere Linux Kommandoen. Op engem héijen Niveau ass et an zwee Deeler opgedeelt - Optiounen an Argumenter:

$ cp [OPTIONS] <SOURCE> <DEST>
$ cp [OPTIONS] <SOURCE-1> <SOURCE-2> ... <DIRECTORY>

An der uewe genannter Syntax representéieren déi quadratesch Klammern ([]) déi fakultativ Argumenter wärend Wénkel Klammern (<>) déi obligatoresch Argumenter duerstellen.

1. Wéi eng Datei an Linux kopéieren

Ee vun de Basisnotzung vum cp Kommando ass eng Datei an en aktuellen Verzeechnes ze kopéieren. Déi meescht vun der Zäit maachen d'Benotzer dës Operatioun fir e Backup vun der wichteger Konfiguratioun ze huelen.

Zum Beispill erstellen mir dacks eng Backupkopie vun der /etc/ssh/sshd_config Datei ier Dir d'SSH Konfiguratioun aktualiséiert.

Fir d'Benotzung ze verstoen, loosst eis eng einfach Datei erstellen:

$ touch file-1.txt

Als nächst erstellt eng Kopie vun der Datei mat dem folgenden Kommando:

$ cp file-1.txt file-2.txt

2. Show Kopie Kommando Fortschrëtt

Am virege Beispill hu mir de Kommando ls benotzt fir z'iwwerpréiwen ob d'Dateikopieeroperatioun gelongen ass oder net. Wéi och ëmmer, et mécht kee Sënn fir ee Kommando méi ze benotzen just fir d'Resultat vun de fréiere Kommandoen z'iwwerpréiwen.

An esou Fäll kënne mir de verbose Modus mat der -v Optioun aktivéieren, déi Diagnostik fir all veraarbechte Fichier ubitt.

Loosst eis eng Kopie vun der Datei-1.txt Datei mat dem folgenden Kommando maachen:

$ cp -v file-1.txt file-3.txt

Am uewe genannten Output representéiert de Pfeil d'Datei déi kopéiert gëtt. Déi lénks Säit Argument ass d'Quelldatei wärend dat riets Säit Argument d'Destinatiounsdatei ass.

3. Wéi kopéiert Dir Multiple Dateien an de Verzeechnes

Bis elo hu mir nëmmen mat enger eenzeger Datei an dem aktuellen Aarbechtsverzeichnis geschafft. Wéi och ëmmer, an der realer Produktiounsëmfeld musse mir mat enger grousser Zuel vu Dateien schaffen. Ee vun de gemeinsame Benotzungsfäll an esou Ëmfeld ass verschidde Dateien an een eenzegen Verzeechnes ze kopéieren.

Natierlech kënne mir de cp Kommando e puer Mol ausféieren fir et z'erreechen, awer dat wäert net de effektivste Wee sinn. Fir esou eng Operatioun effektiv auszeféieren, kënne mir eng alternativ Syntax vum cp Kommando benotzen.

Also, als éischt, erstellt en neie Verzeichnis mam Numm dir-1:

$ mkdir dir-1

Elo, loosst eis all dräi Dateien an den Dir-1 Verzeechnes kopéieren mam eenzege Kommando:

$ cp -v file-1.txt file-2.txt file-3.txt dir-1

Déi uewe Ausgab weist datt all Dateien an den Dir-1 Verzeichnis kopéiert goufen. Och ass et wichteg ze bemierken datt, fir dës alternativ Syntax ze benotzen, muss de Verzeechnes scho präsent sinn an et muss dat lescht Argument vum Kommando sinn.

4. Wéi vermeide Dir d'Datei iwwerschreiwe

Par défaut ersetzt de Kommando cp d'Destinatiounsdatei, dat heescht datt et d'Datei iwwerschreift wann et op der Destinatioun mam selwechten Numm existéiert. Mir kënnen dëst Standardverhalen awer mat der -n Optioun auszeschalten.

Fir dëst ze verstoen, loosst eis probéieren déi existent Datei ze iwwerschreiwe:

$ cp -n -v file-1.txt file-2.txt

An dësem Beispill hu mir d'Optioun -v benotzt fir ze illustréieren datt d'Datei-2.txt Datei net iwwerschriwwe gouf.

5. Wéi iwwerschreiwe de Fichier mat Confirmatioun

Am virege Beispill hu mir gesinn wéi d'Iwwerschreiwe vun der Destinatiounsdatei vermeiden. Wéi och ëmmer, heiansdo wëlle mir d'Datei Destinatioun op eng méi sécher Manéier iwwerschreiwe.

An esou Fäll kënne mir d'Optioun -i vum Kommando benotze fir d'Kopieoperatioun interaktiv ze maachen. Dës Optioun weist d'Warnmeldung a waart op d'Bestätegung vum Benotzer ier Dir d'Datei iwwerschreift.

Fir dëst ze illustréieren, loosst eis probéieren déi existent Datei ze iwwerschreiwe:

$ cp -i file-1.txt file-2.txt

cp: overwrite 'file-2.txt'?

Wéi mir kënne gesinn, waart de Kommando op d'Bestätegung. Just wéi aner Linux Befehle kënne mir y benotzen fir weiderzemaachen oder n fir d'Operatioun ofzebriechen.

Dëst Standard net-interaktivt Verhalen vum cp Kommando ass net ganz sécher. Et gi Chancen datt de Benotzer eng wichteg Konfiguratioun duerch Feeler iwwerschreiwe kéint. Duerfir erzwéngen e puer vun de Linux Verdeelungen dat interaktivt Verhalen als Standard mat dem Alias Kommando:

$ alias cp='cp -i'

6. Iwwerschreiwe Datei Nëmme wann d'Quell méi nei ass

Am virege Beispill hu mir gesinn wéi een den interaktiven Modus benotzt. Wéi och ëmmer, heiansdo kann e Benotzer déi nei Datei zoufälleg iwwerschreiwe.

Fir esou Feeler-ufälleg Fäll ze vermeiden, kënne mir d'Optioun -u benotzen, déi versicht d'Kopieoperatioun nëmmen wann d'Quell méi nei ass wéi d'Destinatioun oder wann d'Datei net op der Destinatioun präsent ass.

Als éischt, update den Zäitstempel vun der Quelldatei:

$ touch -t 10101010 file-1.txt
$ ls -l file-1.txt

Am uewe genannte Beispill hu mir d'Optioun -t vum Touch Kommando benotzt fir den Zäitstempel vun der Datei op 10-Okt-2010 ze setzen.

Als nächst aktualiséieren mir den Zäitstempel vun der Destinatiounsdatei op déi aktuell Zäit:

$ touch file-2.txt

Loosst eis probéieren d'Kopieoperatioun mat der -u Optioun auszeféieren:

$ cp -u -v file-1.txt file-2.txt

Hei kënne mir gesinn datt d'Kopieoperatioun net versicht gouf well d'Destinatiounsdatei méi nei ass wéi d'Quell.

Endlech, loosst eis d'Quell- an Destinatiounsargumenter tauschen an d'Kopieoperatioun ausféieren:

$ cp -u -v file-2.txt file-1.txt

An der uewe genannter Ausgab kënne mir beobachten datt d'Kopieoperatioun geléngt well d'Quelldatei méi nei ass wéi d'Destinatioun.

7. Wéi Backupsatellit Fichier virum Iwwerschreiwen

Mir kënnen de Kommando cp instruéieren fir e Backup vun der Destinatiounsdatei ze huelen ier Dir se iwwerschreift. Fir dëst z'erreechen kënne mir d'Optioun --backup benotzen, déi automatiséiert Backups ausféiert.

$ cp --backup=numbered -v file-1.txt file-2.txt

An dësem Beispill hu mir déi nummeréiert Backup-Politik benotzt. Dës Politik benotzt inkrementell Zuelen an de Backupdateiennimm.

Fir dëst ze verstoen, loosst eis deeselwechte Kommando e puer Mol ausféieren an d'Ausgab beobachten:

$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt

8. Wéi Kraaft kopéieren Fichier iwwerschreiwe

An de fréiere puer Beispiller hu mir gesinn wéi d'Datei op eng méi sécher Manéier iwwerschreiwe kann. Wéi och ëmmer, an e puer rare Fäll ass d'Ufuerderung d'Datei ze iwwerschreiwen. Wéi och ëmmer, et gëtt keng Garantie datt d'Operatioun all Kéier geléngt.

Zum Beispill fällt d'Kopieoperatioun aus wann d'Destinatiounsdatei net d'Schreifrechter huet. Loosst eis dëst mat engem Beispill illustréieren.

Als éischt ännert d'Permissiounen vun der Destinatiounsdatei:

$ chmod 444 file-2.txt
$ ls -l file-2.txt

Elo, loosst eis probéieren d'Datei-2.txt Datei ze iwwerschreiwe:

$ cp file-1.txt file-2.txt

An der uewe genannter Ausgab kënne mir gesinn datt de Kommando mat der Erlaabnes refuséiert Feeler gescheitert ass.

Fir dës Begrenzung ze iwwerwannen, kënne mir d'Optioun -f benotzen, déi d'Destinatiounsdateien läscht a probéiert d'Kopieoperatioun ze probéieren, wann d'Destinatiounsdatei net opgemaach ka ginn.

Loosst eis d'Optioun -f benotzen fir d'Datei kräfteg ze iwwerschreiwen:

$ cp -f -v file-1.txt file-2.txt

9. Wéi läschen d'Destinatiounsdatei ier Dir kopéiert

Am virege Beispill hu mir gesinn wéi d'Destinatiounsdatei läscht wann et e Feeler ass beim Operatioun. Wéi och ëmmer, heiansdo ass d'Ufuerderung d'Zieldatei als éischt ze läschen an dann d'Kopieoperatioun auszeféieren.

Fir esou eng Ufuerderung ze erfëllen, kënne mir d'Optioun --remove-destination benotzen.

$ cp --remove-destination -v file-1.txt file-2.txt

An der uewe genannter Ausgab kënne mir gesinn datt de cp Kommando als éischt d'Destinatiounsdatei läscht an dann d'Kopieoperatioun ausféiert.

10. Wéi eng Hard Link Datei ze erstellen amplaz ze kopéieren

Mir kënnen en haarde Link erstellen anstatt eng nei Kopie vun der Quelldatei ze kreéieren. Dës Optioun spillt eng wichteg Roll wann et e Knappheet un Disk Space ass.

Also, loosst eis d'Optioun -l benotzen fir en haarde Link ze kreéieren:

$ cp -l -v file-1.txt file-4.txt

Elo, loosst eis d'Inodenummere vu béide Dateien iwwerpréiwen fir déi haart Linken z'iwwerpréiwen:

$ ls -i1 file-1.txt file-4.txt

Am uewe genannten Output representéieren d'Zuelen an der éischter Kolonn d'Inodenummeren.

11. Wéi Dir eng Soft Link Datei erstellt amplaz ze kopéieren

Op eng ähnlech Manéier kënne mir e mëlle Link erstellen anstatt eng nei Kopie ze kreéieren mat der -s Optioun wéi hei ënnendrënner:

$ cp -s -v file-1.txt file-5.txt

Elo, loosst eis verifizéieren datt de symbolesche Link richteg erstallt gouf:

$ ls -l file-5.txt

Am uewe genannten Output representéieren déi lescht Kolonnen déi symbolesch Linkrelatioun.

12. Wéi d'Datei Attributer ze erhaalen iwwerdeems Kopie

Et gi verschidde Attributer mat der Datei assoziéiert, wéi seng Zougangszäit, Ännerungszäit, Permissiounen, etc. Par défaut sinn dës Attributer net bewahrt wann Dir d'Datei kopéiert. Fir dëst Standardverhalen ze iwwerschreiden, kënne mir d'Optioun -p benotzen.

Fir dëst ze verstoen, aktualiséieren als éischt den Zäitstempel vun der Datei-1.txt:

$ touch -t 10101010 file-1.txt

Elo, loosst eis eng Kopie vun dëser Datei erstellen andeems Dir all seng Attributer bewahrt:

$ cp -p -v file-1.txt file-6.txt

Endlech, verifizéiert den Zäitstempel vun der Datei-6.txt Datei:

$ ls -l file-6.txt

13. Wéi eng Kopie Operatioun rekursiv ze Leeschtunge

Bis elo hu mir gesinn wéi een eng eenzeg Datei kopéiert. Wéi och ëmmer, dacks musse mir all Dateien an Ënnerverzeechnunge vum bestëmmte Verzeechnes kopéieren.

An esou Fäll kënne mir de rekursive Modus benotzen entweder mat der -r oder -R Optioun.

Also, loosst eis e Verzeechnes erstellen an e puer Dateien an Ënnerverzeechnunge bäidroen:

$ mkdir -p dir-1/dir-2
$ touch dir-1/file-1.txt dir-1/dir-2/file-2.txt

Als nächst, kontrolléiert datt d'Verzeichnisstruktur richteg erstallt gouf:

$ tree dir-1

Elo, loosst eis de Verzeechnes dir-1 rekursiv kopéieren andeems Dir de folgende Kommando benotzt:

$ cp -r -v dir-1 dir-3

Endlech, kontrolléiert datt all Dateien an Ënnerverzeechnungen erfollegräich kopéiert goufen:

$ tree dir-3

14. Wéi Copie Multiple Directories

Ähnlech wéi Dateie kënne mir verschidde Verzeichnisser rekursiv kopéieren mat engem eenzege Kommando. Wéi och ëmmer, fir dëst z'erreechen muss den Destinatiounsverzeechnes scho präsent sinn an et muss dat lescht Argument am Kommando sinn. Loosst eis dëst mat engem Beispill verstoen.

Als éischt erstellt e Verzeichnis en neie Verzeechnes:

$ mkdir dir-4

Elo, loosst eis d'Dir-1 an d'Dir-3 Verzeichnisser an den Dir-4 Verzeichnis kopéieren mat dem folgenden Kommando:

$ cp -r -v dir-1 dir-3 dir-4

Op eng ähnlech Manéier kënne mir d'Optioun -t vum Kommando benotzen fir datselwecht Resultat z'erreechen. Dës Optioun erlaabt eis den Destinatiounsverzeechnes ze spezifizéieren. Also kënne mir et och als éischt Argument benotzen:

$ cp -t dir-4 -r -v dir-1 dir-3

An dësem Artikel hu mir diskutéiert wéi Dir Dateien a Verzeichnisser kopéiert mam cp Kommando. Ufänger kënnen op dës Beispiller am Alldag bezeechnen wärend se mat Linux Systemer schaffen.

Dir kënnt och gär hunn:

  • Fortschrëtter - Show Prozentsaz vun kopéierten Donnéeën fir (cp, mv, dd, tar) Kommandoen
  • Monitor de Fortschrëtt vun (Kopie/Backup/Kompriméieren) Daten mat dem 'pv' Kommando
  • Advanced Copy Command - Weist Fortschrëttsbar wärend Dir grouss Dateien/Ordner op Linux kopéiert

Wësst Dir vun engem anere beschte Beispill vum cp Kommando am Linux? Loosst eis Är Meenung an de Kommentaren hei drënner wëssen.