Kako lahko kopiram datoteke v mapo v drugo mapo na terminalu Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Kadar potrebujete kopiranje vsebine imenika v drugega, je v primeru Linuxa na voljo veliko orodij. Katerega uporabiti? Odvisno je od situacije in osebnih preferenc. V tem članku bomo pogledali načine kopiranja vsebine datotek iz ene mape v drugo v terminalu. Vseboval bo nekaj priljubljenih možnosti za različne situacije.

Kopiranje datotek v terminalu

Kopiranje vsebine enega imenika v drugega je zelo preprosta naloga. Vendar pa imate na voljo veliko možnosti za to. Linux je blagoslovljen s številnimi orodji za upravljanje datotek in imenikov z različnimi dejanji.







Vsi koraki so prikazani v Ubuntu 18.04.1. Najprej ustvarimo nekaj lažnih datotek za delo.



$mkdir -vdir_A



Zdaj pa ustvarimo lažne datoteke z dotikom.





$dotiklutka{1..10}

Ustvarimo drugo mapo v dir_A s peščico lažnih datotek.



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

Zdaj je celotna struktura imenika dir_A videti tako.

$drevodir_A

Ukaz Cp

The cp command je daleč najpogostejše orodje za kopiranje datotek. To je orodje, ki privzeto prihaja s katerim koli sistemom Linux. Kopiranje datotek in imenikov je edini namen cp. Podpira široko paleto funkcij.

To je osnovna struktura cp ukaz.

$cp <opcije> <vir> <cilj>

Na primer, naredimo kopijo datoteke lutka1 datoteko z imenom dummy1_copy .

$cpdummy1 dummy1_copy

Zdaj pa poskusimo kopirati več datotek hkrati. Za takšno operacijo cp zahteva, da je cilj imenik. Tukaj bom uporabil nadomestni izraz, da zajamem vse lutka datoteke in jih vstavite v ~/Prenosi imenik.

$cplutka*~/Prenosi

Kaj pa kopiranje imenika?

$cp -vrdir_A dir_A_copy

Tu smo uporabili dve različni zastavi. Na hitro jih razčlenimo.

  • -r: pomeni a rekurzivno kopirati (vključno s skritimi datotekami). Če kopiranje vključuje celoten imenik ali več, mora imeti zastavico.
  • -v: pomeni podrobno . Orodje cp bo prikazalo vsako posamezno dejanje, ki ga izvede.

Želite slediti simboličnim povezavam? Dodajte zastavico -L.

$cp -Lvr <vir> <cilj>

Recimo, da ima ciljni imenik že datoteko z istim imenom. Če se želite izogniti prepisovanju, uporabite zastavico -n. Zagotovil bo, da v primeru spora cp ne prepiše datoteke.

$cp -nv <vir> <cilj>

Če izvajate občutljivo dejanje kopiranja/lepljenja, je bolje imeti najboljši nadzor nad tem, kaj se zgodi, kajne? V tem primeru uporabite zastavico -i. Gre za interaktivni način, kjer bo cp ob vsakem konfliktu zahteval potrditev.

$cp -jaz <vir> <cilj>

Če vas bolj zanima, je man page vedno ena najboljših dokumentov. Več o cp.

$človek cp

ukaz mv

Orodje mv je podobno orodju cp. Namesto kopiranja mv premakne datoteke in imenike. V primerjavi s cp je enostavnejši.

Ukazna struktura mv je podobna cp.

$mv <možnost> <vir> <cilj>

Če želite premakniti vsebino datoteke dir_A do dir_A_copy , zaženite naslednji ukaz.

$mv -vdir_A/dir_A_copy

Tukaj je zastavica -v za podrobno način. Če želite premakniti samo vsebino datoteke dir_A, namesto tega uporabite naslednjo. V tem primeru mora ciljni imenik obstajati vnaprej.

$mv -vdir_A/ *dir_A_copy

Orodje mv nima veliko dela. Za vse razpoložljive možnosti si oglejte man stran.

$človek mv

Ukaz Rsync

To je eno najbolj priljubljenih in zmogljivih orodij za kopiranje datotek, ki se večinoma uporablja za varnostno kopiranje. Ima možnost kopiranja datotek prek oddaljene povezave. Za razliko od cp in mv ima tudi tono naprednih možnosti kopiranja datotek, ki ponujajo največjo prilagodljivost njegovega vedenja.

Rsync je večinoma znan po algoritmu prenosa delta, ki dramatično zmanjša količino podatkov, ki jih je treba izmenjati. V primeru sinhronizacije na daljavo to prihrani veliko pasovne širine.

Rsync običajno ni vnaprej nameščen v nobenem distribucijskem sistemu Linux. Vendar pa je zaradi svoje priljubljenosti zdaj na voljo v vseh večjih distribucijah Linuxa. Uporaba Pkgs.org če želite izvedeti paket rsync za vašo distribucijo. Ob predpostavki, da imate nameščen rsync, začnimo.

Prvič, osnovna ukazna struktura rsync. Je precej podoben cp.

$rsync<opcije> <vir> <cilj>

Preden začnete, je tukaj nekaj priljubljenih argumentov rsync.

  • -v : Podroben način, prikaže vsa dejanja, ki se izvajajo na zaslonu konzole.
  • -vv : Natančen način z več podrobnostmi
  • -r : Rekurzivni način, mora biti prisoten pri kopiranju imenikov
  • -Z : Stisnite podatke
  • -za : Arhivirajte podatke
  • -n : Suhi tek, teči v kombinaciji z natančnim načinom. Preprosto prikaže dejanja, če bi ukaz zares izvedel
  • - izbrisati : Izbrišite datoteke in imenike v ciljnem imeniku, če jih izvorni imenik ne vsebuje več
  • -ne-cele datoteke : Prisili rsync, da uporablja svoj algoritem prenosa delta, ne glede na vse. Uporabno v scenarijih, kjer morate zagotoviti najmanjšo količino zapisa podatkov.
  • –Odstrani izvorno datoteko : Po kopiranju izbrišite izvorne datoteke.

Preverimo jih v akciji. Najprej kopija imenika. Zaženite naslednji ukaz.

$rsync-vrdir_A/dir_A_copy

Za podrobnejše izpise uporabimo zastavico -vv.

$rsync-vv -rdir_A/dir_A_copy

Zdaj pa poglejmo kul del rsync. Govorili smo o tem, kako rsync inteligentno kopira samo spremenjene datoteke, kar prihrani pasovno širino in zapis na disk. Čas je, da to preverite v akciji. V tem primeru bo dejanje izvedeno v dir_A imenik.

$rsync-vv --no-cele datotekelutka*dir_B/

Kljub temu, da je prenos delta omogočen, ga rsync morda ne bo uporabljal, ko izvajate lokalni prenos podatkov.

Zdaj pa poglejmo funkcijo suhega teka. Preden resnično zaženete kateri koli ukaz rsync, je vedno pomembno, da ga predhodno preizkusite. Tu nastopi suhi zagon. Rsync bo prikazal, kaj se bo zgodilo, če bi ukaz dejansko zagnal.

$rsync-anvrdir_A/dir_A_copy

Rsync lahko deluje tudi z oddaljenimi imeniki, brez težav. Vse, kar potrebuje, je ustrezna povezava SSH s konfiguriranimi ključi SSH.

$ rsync<možnost> <local_dir>
<uporabniško ime> @<remote_host>:<destination_dir>

Želite izvesti operacijo premikanja? Če želite to postaviti v perspektivo rsync, bo rsync kopiral vsebino izvornega imenika in nato izbrisal izvorno vsebino.

$rsync-v --remove-source-files <vir> <cilj>

Preverite rezultat operacije.

$drevodir_A

$drevodir_A_copy

Končne misli

Cp in rsync sta najpogostejša orodja, ki jih lahko uporabite za kopiranje datotek v mapo na terminalu Linux. Oba sta res dobra tudi za pisanje skriptov. Prepričajte se, da funkcije preizkusite pred implementacijo.

Uživajte!