Articles

Cum să copiați fișiere și directoare în Linux

copierea fișierelor și directoarelor este una dintre cele mai frecvente sarcini pe care le veți efectua atunci când lucrați la linia de comandă. Există mai multe comenzi pentru copierea fișierelor în Linux, cp și rsync fiind cele mai utilizate instrumente.

este o practică obișnuită să folosiți comandacppentru a copia fișiere șirsync pentru a copia directoare.

pentru a putea copia fișiere și directoare, trebuie să aveți cel puțin permisiuni de citire în fișierul sursă și permisiunea de scriere în directorul de destinație.

copierea fișierelor cu comanda cp #

pe sistemele de operare Linux și UNIX, comandacpeste utilizată pentru copierea fișierelor și directoarelor.

cel mai simplu caz de utilizare este copierea unui fișier în directorul de lucru curent. De exemplu, pentru a copia un fișier numit file.txt într-un fișier numit file_backup.txt în directorul curent, executați următoarea comandă:

cp file.txt file_backup.txt

Dacă fișierul destinație există, acesta va fi suprascris. Pentru a obține un prompt de confirmare înainte de a suprascrie fișierele, utilizați opțiunea -i.

cp -i file.txt file_backup.txt

în mod implicit, atunci când utilizați comandacp pentru a copia un fișier, noul fișier va fi deținut de utilizatorul care efectuează comanda. Utilizați opțiunea -p pentru a păstra modul de fișier, proprietatea și marcajele de timp:

cp -p file.txt file_backup.txt

o altă opțiune care poate fi utilă este -v. Când utilizați această opțiune, comanda imprimă ceea ce se face:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

copiați un fișier într-un director #

pentru a copia un fișier într-un director, specificați calea absolută sau relativă către director. Când directorul destinație este omis, fișierul este copiat în directorul curent.

în exemplul următor, copiem fișierul file.txt în directorul/backup :

cp file.txt /backup

când specificați doar numele directorului ca destinație, fișierul copiat va avea același nume ca fișierul original.

dacă doriți să copiați fișierul sub un alt nume, trebuie să specificați numele de fișier dorit:

cp file.txt /backup/new_file.txt

comanda de mai sus va copia fișierul în directorul specificat canew_file.txt.

Copiere mai multe fișiere #

pentru a copia mai multe fișiere și directoare simultan, specificați numele fișierelor sursă și directoarelor urmate cu directorul destinație ca ultim argument:

cp file.txt dir file1.txt file2.txt dir1

când copiați mai multe fișiere, destinația trebuie să fie un director.

comandacp vă permite, de asemenea, să utilizați potrivirea modelelor. De exemplu, pentru a copia toate fișierele .png din directorul curent în directorul /backup, utilizați:

cp *.png /backup

copierea directoarelor cu comanda cp #

pentru a copia un director, inclusiv toate fișierele și subdirectoarele sale, utilizați opțiunea -R sau -r. În exemplul următor, copiem directorul Pictures în Pictures_backup:

cp -R Pictures Pictures_backup

comanda de mai sus va crea directorul de destinație și va copia recursiv toate fișierele și subdirectoarele din sursă în directorul de destinație.

dacă directorul de destinație există deja, directorul sursă în sine și conținutul său sunt copiate în directorul de destinație. Pentru a copia numai fișierele și subdirectoarele, dar nu și directorul țintă, utilizați opțiunea -T :

cp -RT Pictures Pictures_backup

opțiunile utilizate la copierea fișierelor pot fi utilizate și la copierea directoarelor. Principala diferență este că atunci când copiați directoarele, trebuie să utilizați opțiunea -R.

copierea fișierelor și directoarelor cu comanda rsync #

rsync este un utilitar de linie de comandă rapid și versatil care sincronizează fișierele și directoarele între două locații. Poate fi folosit pentru a copia fișiere în locații locale și la distanță.

rsync include multe opțiuni care controlează fiecare aspect al comportamentului său

cea mai utilă opțiune este-a care copiază recursiv directoare, transferă dispozitive speciale și blochează și păstrează legături simbolice, timpi de modificare, grup, proprietate și permisiuni.

pentru a copia un singur fișier dintr-o locație în alta, executați următoarea comandă:

rsync -a file.txt file_backup.txt

Dacă fișierul destinație există, rsync îl va suprascrie.

aceeași comandă poate fi utilizată pentru a copia un director:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync amenință directoarele sursă care se termină cu o bară oblică/ diferit. Dacă adăugați o bară oblică în directorul sursă, comanda va copia numai conținutul directorului sursă în directorul destinație. Când slash-ul final este omis, rsync va copia directorul sursă din directorul destinație. Cea mai sigură opțiune este întotdeauna să includeți slash-ul final / atât pe destinație, cât și pe sursă.

pentru a afla mai multe desprersync verificați următoarele articole:

  • cum să utilizați Rsync pentru transferul și sincronizarea datelor locale și la distanță
  • cum să excludeți fișierele și directoarele cu Rsync

concluzie #

v-am arătat cum să copiați fișierele și directoarele în sistemele Linux și Unix, folosindcp șirsync utilități.