Cum pot copia fișiere dintr-un folder într-un alt folder de pe terminalul Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Când aveți nevoie să copiați conținutul unui director în altul, în cazul Linux, există o mulțime de instrumente la dispoziția dumneavoastră. Pe care să îl folosești? Depinde de situație și de preferințele personale. În acest articol, vom analiza modalitățile prin care puteți copia conținutul fișierului dintr-un dosar în altul din terminal. Va conține câteva dintre opțiunile populare pentru diferite situații.

Copierea fișierelor în terminal

Copierea conținutului unui director în altul este o sarcină foarte simplă. Cu toate acestea, aveți o mulțime de opțiuni de a face acest lucru. Linux este binecuvântat cu numeroase instrumente pentru a manipula fișiere și directoare prin diferite acțiuni.







Toți pașii sunt demonstrați pe Ubuntu 18.04.1. La început, să creăm o mână de fișiere fictive pentru a lucra.



$mkdir -vdir_A



Acum, să creăm fișierele false folosind touch.





$atingeremanechin{1..10}

Să creăm un alt dosar în dir_A cu o mână de fișiere fictive.



$mkdir -vdir_B
$atingeremanechin{1..10}

Acum, întreaga structură a directorului dir_A arată astfel.

$copacdir_A

Comandă Cp

The cp comanda este, de departe, cel mai comun instrument pentru copierea fișierelor. Este un instrument care vine în mod implicit cu orice sistem Linux. Copierea fișierelor și a directoarelor este singurul scop al cp. Suportă o gamă largă de caracteristici.

Aceasta este structura de bază a cp comanda.

$cp <Opțiuni> <sursă> <destinaţie>

De exemplu, să facem o copie a manechin1 fișier cu numele dummy1_copy .

$cpdummy1 dummy1_copy

Acum, să încercăm să copiem mai multe fișiere simultan. Pentru o astfel de operație, cp necesită ca destinația să fie un director. Aici, voi folosi expresia wildcard pentru a obține toate manechin fișiere și le introduceți în ~ / Descărcări director.

$cpmanechin*~/Descărcări

Ce zici de copierea unui director?

$cp -vrdir_A dir_A_copy

Aici am folosit două steaguri diferite. Să le prezentăm rapid.

  • -r: înseamnă o recursiv copia (inclusiv orice fișier (e) ascuns). Semnalizare obligatorie dacă copierea implică un director întreg sau mai multe.
  • -v: înseamnă detaliat . Instrumentul CP va afișa fiecare acțiune pe care o efectuează.

Doriți să urmați legăturile simbolice? Adăugați steagul -L.

$cp -Lvr <sursă> <destinaţie>

Să presupunem că directorul de destinație are deja un fișier cu același nume. Dacă doriți să evitați suprascrierea, utilizați steagul -n. Se va asigura că, în caz de conflict, cp nu va suprascrie fișierul.

$cp -nv <sursă> <destinaţie>

Dacă efectuați o acțiune delicată de copiere / lipire, este mai bine să aveți cel mai bun control asupra a ceea ce se întâmplă, nu? Într-un astfel de caz, utilizați steagul -i. Acesta reprezintă un mod interactiv în care cp va cere confirmarea de fiecare dată când apare un conflict.

$cp -i <sursă> <destinaţie>

Dacă sunteți mai interesat, pagina manuală este întotdeauna una dintre cele mai bune documentații. Aflați mai multe despre cp.

$om cp

comanda mv

Instrumentul mv este similar cu instrumentul cp. Cu toate acestea, în loc să copieze, mv mută fișiere și directoare. Comparativ cu CP, este unul mai simplu.

Structura de comandă a mv este similară cu cp.

$mv <opțiune> <sursă> <destinaţie>

Pentru a muta conținutul dir_A la dir_A_copy , executați următoarea comandă.

$mv -vdir_A/dir_A_copy

Aici, steagul -v este pentru detaliat modul. Dacă doriți să mutați doar conținutul dir_A, utilizați în schimb următorul. În acest caz, directorul țintă trebuie să existe în prealabil.

$mv -vdir_A/ *dir_A_copy

Instrumentul mv nu are prea multe de lucrat. Pentru toate opțiunile disponibile, consultați pagina manuală.

$om mv

Comandă Rsync

Acesta este unul dintre cele mai populare și mai puternice instrumente de copiere a fișierelor, utilizat mai ales pentru backup. Deține capacitatea de a copia fișiere printr-o conexiune la distanță. Spre deosebire de cp și mv, acesta vine, de asemenea, cu o mulțime de opțiuni avansate de copiere a fișierelor, care oferă cea mai mare personalizare a comportamentului său.

Rsync este renumit în cea mai mare parte pentru algoritmul său de transfer delta, care reduce dramatic cantitatea de date care trebuie schimbată. În cazul sincronizării la distanță, acest lucru economisește multă lățime de bandă.

Rsync nu vine în general preinstalat în nicio distribuție Linux. Cu toate acestea, datorită popularității sale, este acum disponibil pentru toate distribuțiile Linux principale. Utilizare Pkgs.org pentru a afla pachetul rsync pentru distribuția dvs. Presupunând că ați instalat rsync, să începem.

În primul rând, structura de comandă de bază a rsync. Este destul de similar cu CP.

$rsync<Opțiuni> <sursă> <destinaţie>

Înainte de a începe, iată o mână de argumente rsync populare.

  • -v : Modul Verbose, afișează orice acțiune efectuată pe ecranul consolei.
  • -vv : Mod verbos cu mai multe detalii
  • -r : Mod recursiv, trebuie să fie prezent dacă copiați directoare
  • -Cu : Comprimați datele
  • -la : Arhivează date
  • -n : Rularea uscată, trebuie efectuată în combinație cu modul detaliat. Pur și simplu scoate acțiunile dacă comanda ar trebui să ruleze pe bune
  • -șterge : Ștergeți fișierele și directorul din directorul de destinație dacă directorul sursă nu le mai conține
  • -no-întreg-fișier : Forțează rsync să-și folosească algoritmul de transmisie delta, indiferent de ce. Util în scenarii în care trebuie să vă asigurați cea mai mică cantitate de date.
  • –Eliminați-fișierul sursă : Ștergeți fișierele sursă după copiere.

Să le verificăm în acțiune. În primul rând, copia directorului. Rulați următoarea comandă.

$rsync-vrdir_A/dir_A_copy

Pentru rezultate detaliate suplimentare, să folosim steagul -vv.

$rsync-vv -rdir_A/dir_A_copy

Acum, să verificăm partea interesantă a rsync. Am discutat despre modul în care rsync copiază inteligent doar fișierele modificate, economisind lățimea de bandă și scrierea pe disc. Este timpul să o verificăm în acțiune. În acest exemplu, acțiunea va fi efectuată în cadrul dir_A director.

$rsync-vv --no-întreg-fișiermanechin*dir_B/

În ciuda transmisiei delta activată, este posibil ca rsync să nu o aplice atunci când efectuați transferul local de date.

Acum, să verificăm caracteristica de alergare pe uscat. Înainte de a rula orice comandă rsync pe bune, este întotdeauna important să o testați în prealabil. Aici intervine rularea uscată. Rsync va afișa ce se va întâmpla dacă comanda ar fi efectiv executată.

$rsync-anvrdir_A/dir_A_copy

Rsync poate funcționa și cu directoare la distanță, fără probleme. Tot ce are nevoie este o conexiune SSH adecvată cu chei SSH configurate.

$ rsync<opțiune> <local_dir>
<nume de utilizator> @<gazda la distanta>:<destin_dir>

Doriți să efectuați o operație de mutare? Pentru a pune acest lucru în perspectiva rsync, rsync va copia conținutul directorului sursă și apoi va șterge conținutul sursă.

$rsync-v --remove-source-files <sursă> <destinaţie>

Verificați rezultatul operației.

$copacdir_A

$copacdir_A_copy

Gânduri finale

Cp și rsync sunt cele mai comune instrumente pe care le puteți utiliza pentru copierea fișierelor dintr-un folder de pe terminalul Linux. Ambele sunt, de asemenea, foarte bune pentru scenarii. Asigurați-vă că testați funcțiile înainte de implementare.

Bucurați-vă!