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
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!