cp Command in Linux

Utilizarea comenzii cp

Comanda cp este una dintre comenzile esențiale din Linux pe care probabil o veți folosi în mod regulat. Așa cum indică numele, cp însemană „copy” și este utilizat pentru a copia fișiere și directoare în linia decomandă a Linux.

Este una dintre cele mai simple comenzi, cu doar câteva opțiuni, dar asta nu înseamnă că nu puteți afla mai multe despre ea.

Copierea unui fișier

Cea mai simplă și cea mai compună utilizarea a comenzii cp este pentru copierea fișierelor. Pentru asta, trebuie doar să specificați fișierul sursă și destinația unde doriți să „lipiți” fișierul.

cp fișierul_sursă directorul_de_destinație
hard@root:~$ ls
Desktop   Downloads    fișier_3.txt Pictures Templates
Documents fișier_1.txt Music        Public   Video
hard@root:~$ cp fișier_1.txt Downloads/
hard@root:~$ ls Documents/ | grep fișier
fișier_1.txt
hard@root:~$

Redenumirea fișierului în timpul copierii

De asemnea, puteți redenumit fișierul în timp ce îl copiați într-o altă locație. Acest lucru este asemănător cu opțiunea „save as” pe care o vedeți în editorii de text.

Pentru aceasta, trebuie să menționați noul nume de fișier împreună cu calea de acces.

cp fișierul_sursă directorul_de_destinație/nume_de_fișier_nou
hard@root:~$ ls
Desktop   Downloads    fișier_3.txt Pictures Templates
Documents fișier_1.txt Music        Public   Video
hard@root:~$ cp fișier_1.txt Downloads/fișier_2.txt
hard@root:~$

Copiați mai multe fișiere

De asemenea, puteți copia mai multe fișiere într-o altă locație.

cp fișier_1.txt fișier_2.txt fișier_3.txt directorul_de_destinație
hard@root:~$ ls
Desktop   Downloads    fișier_3.txt Pictures Templates
Documents fișier_1.txt Music        Public   Video
hard@root:~$ cp fișier_1.txt fișier_3.txt Downloads/
hard@root:~$ ls Downloads/ | grep fișier
fișier_1.txt
fișier_2.txt
fișier_3.txt
hard@root:~$

În acest caz, nu puteți redenumi fișierele.

Desigur, puteți utiliza opțiunea „wildcard” și puteți copia fișiere de un anumit tip într-o altă locație.

cp *.txt directorul_de_destinație
hard@root:~$ ls
Desktop   Downloads    fișier_2.txt fișier_4.txt Music    Public    Videos
Documents fișier_1.txt fișier_3.txt fișier_5.txt Pictures Templates 
hard@root:~$ cp *.txt Downloads/
hard@root:~$ ls Downloads/
fișier_1.txt fișier_2.txt fișier_3.txt fișier_4.txt fișier_5.txt
hard@root:~$

Evitați suprascrierea în timpul copierii fișierelor

Dacă copiați fișier_1.txt într-un director în care există deja un fișier numit fișier_1.txt, acesta va fi suprascris cu fișierul pe care îl copiați.

S-ar putea să nu doriți întotdeauna acest lucru. Din acest motiv, comanda cp oferă mai multe opțiuni pentru a rezolva problema suprascrierii.

Cel mai important este modul interactiv cu opțiune -i. În modul interactiv, vă va cere să confirmați sau să refuzați suprascrierea fișierului de la destinație.

cp -i fișierul_sursă directorul_de_destinație
cp: overwrite 'directorul_de_destinație/fișierul_sursă'?

Apăsați pe Y pentru a suprascrie și N pentru a sări peste copierea fișierului.

hard@root:~$ cat fișier_1.txt Downloads.fișier_1.txt
_____fișier_1.txt_____
Exemplu pentru a demonstra copierea de fișiere
_____Downloads/fișier_1.txt_____
Un alt fișier_1.txt cu conținut diferit
hard@root:~$ cp -i fișier_1.txt Downloads/
cp: overwrite 'Downloads/fișier_1.txt'? y
hard@root:~$ cat Downloads/fișier_1.txt
____fișier_1.txt_____
Exemplu pentru a demonstra copierea de fișiere
hard@root:~$
hard@root:~$ cat fișier_1.txt Downloads.fișier_1.txt
_____fișier_1.txt_____
Exemplu pentru a demonstra copierea de fișiere
_____Downloads/fișier_1.txt_____
Un alt fișier_1.txt cu conținut diferit
hard@root:~$ cp -i fișier_1.txt Downloads/
cp: overwrite 'Downloads/fișier_1.txt'? n
hard@root:~$ cat Downloads/fișier_1.txt
____fișier_1.txt_____
Un alt fișier_1.txt cu conținut diferit
hard@root:~$

Opțiunea -n anulează complet suprascrierea. Fișierele de la destinație nu vor fi suprascrise cu această opțiune.

cp -n fișierul_sursă directorul_de_destinație
hard@root:~$ cat fișier_1.txt
Exemplu pentru a demonstra copierea de fișiere
hard@root:~$ cat Download/fișier_1.txt
Un alt fișier_1.txt cu conținut diferit
hard@root:~$ cp -n fișier_1.txt Downloads/
hard@root:~$
hard@root:~$ cat Downloads/fișier_1.txt
Un alt fișier_1.txt cu conținut diferit
hard@root:~$

Există, de asemenea, o opțiune -b pentru crearea automată a unei copii de rezervă în cazul în care fișierul de la destinație urmează să fie suprascris. B înseamnă „backup”.

cp -b fișierul_sursă directorul_de_destinație
hard@root:~$ cp -b fișier_1.txt Downloads/
hard@root:~$ ls Downloads/
fișier_1.txt fișier_1.txt~ fișier_2.txt fișier_3.txt fișier_4.txt fișier_5.txt
hard@root:~$ cat Downloads/fișier_1.txt
Exemplu pentru a demonstra copierea de fișiere
hard@root:~$ cat Downloads/fișier_1.txt~
Un alt fișier_1.txt cu conținut diferit
hard@root:~$

Și, în cele din urmă, există opțiune -uupdate”, care va suprascrie fișierul de la destinație dacă acesta este mai vechi decât fișierul sursă sau dacă fișierul de la destinație nu există.

cp -u fișierul_sursă directorul_de_destinație
hard@root:~$ ls -l fișier_1.txt Downloads/fișier_1.txt
-rw-r--r--. 1 hard hard 94 Jul 15 11:03 fișier_1.txt             -- fișier mai nou
-rw-r--r--. 1 hard hard 44 Jul 15 11:00 Downloads/fișier_1.txt
hard@root:~$ cp -u fișier_1.txt Downloads/
hard@root:~$ cat Downloads/fișier_1.txt
Exemplu pentru a demonstra copierea de fișiere                   -- Conținutul noului fișier suprascris
hard@root:~$

Copierea directoarelor (dosarelor)

Comanda cp este, de asemenea, utilizată pentru a copia directoare în linia de comandă din Linux.

Trebuie să utilizați opțiunea recursivă -r pentru copierea directoarelor.

cp -r director_sursă director_destinație
hard@root:~$ ls
Desktop   Downloads    fișier_3.txt Pictures Templates
Documents fișier_1.txt Music        Public   Video
hard@root:~$ mkdir Backup
hard@root:~$ cd -r Documents Backup/
hard@root:~$ ls Backup
Documents
hard@root:~$

De asemenea, puteți copia mai multe directoare într-o altă locație.

cp -r dir1 dir2 dir3 director_destinație
hard@root:~$ ls
Backup  Documents Music    Public    Video
Desktop Downloads Pictures Templates
hard@root:~$ cp -r Desktop Downloads Public Templates ~/Backup/
hard@root:~$ ls
Desktop Documents Downloads Public Templates
hard@root:~$

Păstrați atributele în timpul copierii

Atunci când copiați un fișier într-o altă locație, se modifică datele de timp, permisiunea fișierului și chiar proprietatea acestuia.

Acesta este un comportament normal. Dar, în unele cazuri, este posibil să doriți să păstrați atributul original chiar și atunci când copiați fișierul.

Pentru a păstra atributele, utilizați opțiunea -p.

cp -p fișierul_sursă directorul_de_destinație
hard@root:~$ ls -l Backup/Desktop/
total 24
-rw-r--r--. 1 hard hard   181 Jul 15 11:00 'Articole pentru cover.md'
-rwxr-xr-x. 1 hard hard   311 Jul 15 11:00 firefox-edcmabgkbicemmpgmniellhbjopafjh-Default.desktop
drwxr-xr-x. 1 hard hard   560 Jul 15 11:00 'htop recordings'
-rw-r--r--. 1 hard hard 13761 Jul 15 11:00 mastodon_dp.jpg
hard@root:~$ cp -r -p ~/Desktop/ ~/Backup/
hard@root:~$ ls -l Backup/Desktop/
total 24
-rw-r--r--. 1 hard hard   181 Apr 26 09:15 'Articole pentru cover.md'
-rwxr-xr-x. 1 hard hard   311 May  5 14:20 firefox-edcmabgkbicemmpgmniellhbjopafjh-Default.desktop
drwxr-xr-x. 1 hard hard   560 Jul  8 12:10 'htop recordings'
-rw-r--r--. 1 hard hard 13761 Aug  1 2022 mastodon_dp.jpg
hard@root:~$
Notă:
Există, de asemenea, opțiunea -a pentru modul arhivă. Acesta va păstra chiar și ACL-urile.

ThinkRoot99

Numele meu este Cristian Moldovan și sunt utilizator de Linux de peste 10 ani.Am făcut parte din mai multe echipe open source din România: Fundația Ceata, Linux Mint România, Rogentos Linux Group. Între 2014 și 2018 am fost propietarul și editorul site-ului de știri despre linux, gnulinux.ro și actual proprietar al rootlinux.ro

View all posts by ThinkRoot99 →

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *