Kako mogu kopirati datoteke u mapu u drugu mapu na Linux terminalu

How Can I Copy Files Folder Into Another Folder Linux Terminal



Kad trebate kopirati sadržaj direktorija u drugi, u slučaju Linuxa, na raspolaganju vam je mnogo alata. Koju koristiti? Ovisi o situaciji i osobnim preferencijama. U ovom ćemo članku pogledati načine na koje možete kopirati sadržaj datoteke iz jedne mape u drugu na terminalu. Sadržat će neke od popularnih izbora za različite situacije.

Kopiranje datoteke u terminalu

Kopiranje sadržaja jednog imenika u drugi vrlo je jednostavan zadatak. Međutim, imate mnogo mogućnosti za to. Linux je blagoslovljen brojnim alatima za upravljanje datotekama i direktorijima kroz različite radnje.







Svi su koraci prikazani na Ubuntu 18.04.1. U početku, stvorimo pregršt lažnih datoteka s kojima ćemo raditi.



$mkdir -vdir_A



Sada, stvorimo lažne datoteke pomoću dodira.





$dodirlutka{1..10}

Kreirajmo drugu mapu unutar dir_A s pregršt lažnih datoteka.



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

Sada cijela struktura direktorija dir_A izgleda ovako.

$stablodir_A

Cp naredba

The k.č naredba je daleko najčešći alat za kopiranje datoteka. To je alat koji prema zadanim postavkama dolazi sa bilo kojim Linux sustavom. Kopiranje datoteka i direktorija jedina je svrha cp -a. Podržava širok raspon značajki.

Ovo je osnovna struktura k.č naredba.

$k.č <mogućnosti> <izvor> <odredište>

Na primjer, napravimo kopiju datoteke lutka1 datoteku s imenom lažna1_kopija .

$k.čdummy1 dummy1_copy

Pokušajmo kopirati više datoteka odjednom. Za takvu operaciju, cp zahtijeva da odredište bude direktorij. Ovdje ću upotrijebiti zamjenski izraz da uhvatim sve lutka datoteke i stavite ih u ~/Preuzimanja imenik.

$k.člutka*~/Preuzimanja

Kako bi bilo kopirati imenik?

$k.č -vrdir_A dir_A_copy

Ovdje smo koristili dvije različite zastave. Hajdemo ih nakratko raščlaniti.

  • -r: Označava a ponavljajući kopirati (uključujući sve skrivene datoteke). Mora imati zastavicu ako kopiranje uključuje cijeli direktorij ili više njih.
  • -v: Zalaže se za detaljno . Alat cp ispisat će svaku radnju koju izvrši.

Želite slijediti simbolične veze? Dodajte zastavicu -L.

$k.č -Lvr <izvor> <odredište>

Recimo da odredišni direktorij već ima datoteku s istim imenom. Ako želite izbjeći prepisivanje, upotrijebite zastavicu -n. Osigurat će da u slučaju sukoba cp neće prebrisati datoteku.

$k.č -nv <izvor> <odredište>

Ako izvodite osjetljivu radnju kopiranja/lijepljenja, bolje je imati najbolju kontrolu nad onim što se događa, zar ne? U tom slučaju upotrijebite zastavicu -i. Označava interaktivni način rada gdje će cp tražiti potvrdu svaki put kada dođe do sukoba.

$k.č -i <izvor> <odredište>

Ako vas više zanima, man stranica je uvijek jedna od najboljih dokumentacija. Saznajte više o k.č.

$čovjek k.č

mv naredba

Alat mv sličan je alatu cp. Međutim, umjesto kopiranja, mv premješta datoteke i direktorije. U usporedbi s cp -om, jednostavniji je.

Naredbena struktura mv -a slična je k.č.

$mv <opcija> <izvor> <odredište>

Za premještanje sadržaja u dir_A do dir_A_copy , pokrenite sljedeću naredbu.

$mv -vdir_A/dir_A_copy

Ovdje je -v zastavica za detaljno načinu rada. Ako želite premjestiti samo sadržaj dir_A, umjesto toga upotrijebite sljedeći. U tom slučaju ciljni imenik mora postojati unaprijed.

$mv -vdir_A/ *dir_A_copy

Alat mv nema s čime raditi. Za sve dostupne opcije provjerite man stranicu.

$čovjek mv

Naredba Rsync

Ovo je jedan od najpopularnijih i najsnažnijih alata za kopiranje datoteka, koji se uglavnom koristi za izradu sigurnosnih kopija. Ima mogućnost kopiranja datoteka putem udaljene veze. Za razliku od cp -a i mv -a, također dolazi s mnoštvom naprednih mogućnosti kopiranja datoteka koje nude najveću prilagodbu njegovog ponašanja.

Rsync je uglavnom poznat po algoritmu prijenosa delta koji dramatično smanjuje količinu podataka koje je potrebno razmijeniti. U slučaju daljinske sinkronizacije, ovo štedi veliku propusnost.

Rsync općenito ne dolazi unaprijed instaliran u bilo koji Linux distro. Međutim, zbog svoje popularnosti, sada je dostupan na svim većim Linux distribucijama. Koristiti Pkgs.org kako biste saznali rsync paket za svoj distro. Pretpostavimo da ste instalirali rsync, počnimo.

Prvo, osnovna naredbena struktura rsync -a. Prilično je slično k.č.

$rsync<mogućnosti> <izvor> <odredište>

Prije nego počnete, evo nekoliko popularnih rsync argumenata.

  • -v : Opširni način rada, prikazuje sve radnje koje se izvode na zaslonu konzole.
  • -vv : Opširni način s više pojedinosti
  • -r : Rekurzivni način, mora biti prisutan ako kopirate direktorije
  • -S : Komprimirajte podatke
  • -do : Arhivirajte podatke
  • -n : Suho trčanje, treba raditi u kombinaciji s detaljnim načinom rada. Jednostavno ispisuje radnje ako bi se naredba izvršila
  • -izbrisati : Izbrišite datoteke i direktorije u odredišnom direktoriju ako ih izvorni direktorij više ne sadrži
  • -ne-cele datoteke : Prisiljava rsync da koristi svoj algoritam delta prijenosa, bez obzira na sve. Korisno u scenarijima u kojima morate osigurati najmanju količinu zapisa podataka.
  • –Ukloni izvornu datoteku : Brisanje izvornih datoteka nakon kopiranja.

Provjerimo ih na djelu. Prvo, kopija direktorija. Pokrenite sljedeću naredbu.

$rsync-vrdir_A/dir_A_copy

Za daljnji detaljan ispis upotrijebimo zastavicu -vv.

$rsync-vv -rdir_A/dir_A_copy

Pogledajmo sada cool dio rsync -a. Raspravljali smo o tome kako rsync inteligentno kopira samo datoteke koje su izmijenjene, štedeći propusnost i pisanje na disk. Vrijeme je da to provjerite na djelu. U ovom primjeru radnja će se izvesti unutar dir_A imenik.

$rsync-vv --no-whole-filelutka*dir_B/

Unatoč omogućenom delta prijenosu, rsync ga možda neće primijeniti kada obavljate lokalni prijenos podataka.

Sada provjerimo značajku suhog rada. Prije nego što pokrenete bilo koju rsync naredbu, uvijek je važno da je prethodno isprobate. Ovdje dolazi suhi rad. Rsync će ispisati što će se dogoditi ako se naredba zaista pokrene.

$rsync-anvrdir_A/dir_A_copy

Rsync može raditi i s udaljenim direktorijima, bez problema. Sve što je potrebno je ispravna SSH veza s konfiguriranim SSH ključevima.

$ rsync<opcija> <lokalni_dir>
<Korisničko ime> @<remote_host>:<odredište_dir>

Želite li izvesti operaciju premještanja? Kako bi to stavio u perspektivu rsynca, rsync će kopirati sadržaj izvornog direktorija, a zatim izbrisati izvorni sadržaj.

$rsync-v --remove-source-files <izvor> <odredište>

Provjerite rezultat operacije.

$stablodir_A

$stablodir_A_copy

Završne misli

Cp i rsync najčešći su alati koje možete koristiti za kopiranje datoteka u mapu na Linux terminalu. Obje su također dobre za skriptiranje. Samo provjerite funkcije prije implementacije.

Uživati!