Kaip nukopijuoti aplanke esančius failus į kitą aplanką „Linux“ terminale

How Can I Copy Files Folder Into Another Folder Linux Terminal



Kai jums reikia nukopijuoti katalogo turinį į kitą, „Linux“ atveju turite daug įrankių. Kurį naudoti? Tai priklauso nuo situacijos ir asmeninių pageidavimų. Šiame straipsnyje apžvelgsime būdus, kaip kopijuoti failo turinį iš vieno aplanko į kitą terminale. Jame bus keletas populiarių pasirinkimų įvairioms situacijoms.

Failų kopijavimas terminale

Vieno katalogo turinio kopijavimas į kitą yra labai paprasta užduotis. Tačiau jūs turite daug galimybių tai padaryti. „Linux“ yra palaiminta daugybe įrankių, skirtų įvairiems veiksmams manipuliuoti failais ir katalogais.







Visi veiksmai parodyti „Ubuntu 18.04.1“. Iš pradžių sukurkime keletą fiktyvių failų, su kuriais galėsite dirbti.



$mkdir -vdir_A



Dabar sukurkime fiktyvius failus naudodami lietimą.





$paliestimanekenas{1..10}

Sukurkime dar vieną aplanką „dir_A“ su sauja netikrų failų.



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

Dabar visa katalogo dir_A struktūra atrodo taip.

$medisdir_A

Cp komanda

The cp komanda yra labiausiai paplitusi failų kopijavimo priemonė. Tai įrankis, kuris pagal numatytuosius nustatymus yra bet kurioje „Linux“ sistemoje. Failų ir katalogų kopijavimas yra vienintelis cp tikslas. Jis palaiko platų funkcijų spektrą.

Tai yra pagrindinė cp komandą.

$cp <galimybės> <šaltinis> <Kelionės tikslas>

Pavyzdžiui, padarykime kopiją manekenas1 failą su pavadinimu dummy1_copy .

$cpdummy1 dummy1_copy

Dabar pabandykime nukopijuoti kelis failus vienu metu. Tokiai operacijai cp reikalauja, kad paskirties vieta būtų katalogas. Čia aš naudosiu pakaitos simbolių išraišką, kad sugriebčiau visus manekenas failus ir įdėkite juos į ~/Atsisiuntimai katalogą.

$cpmanekenas*~/Atsisiuntimai

Kaip nukopijuoti katalogą?

$cp -vrdir_A dir_A_copy

Čia mes naudojome dvi skirtingas vėliavas. Greitai suskaidykime juos.

  • -r: reiškia a rekursyvus kopiją (įskaitant visus paslėptus failus). Privaloma turėti vėliavą, jei kopijuojant naudojamas visas katalogas ar daugiau.
  • -v: reiškia daugiakalbiai . Cp įrankis išves kiekvieną atliktą veiksmą.

Norite sekti simbolines nuorodas? Pridėkite vėliavą -L.

$cp -Lvr <šaltinis> <Kelionės tikslas>

Tarkime, paskirties kataloge jau yra to paties pavadinimo failas. Jei norite išvengti perrašymo, naudokite vėliavą -n. Tai užtikrins, kad konflikto atveju cp neperrašys failo.

$cp -nv <šaltinis> <Kelionės tikslas>

Jei atliekate jautrų kopijavimo/įklijavimo veiksmą, geriau geriau valdyti, kas vyksta, tiesa? Tokiu atveju naudokite -i vėliavą. Tai reiškia interaktyvų režimą, kai cp paprašys patvirtinimo kiekvieną kartą kilus konfliktui.

$cp -i <šaltinis> <Kelionės tikslas>

Jei jus labiau domina, man puslapis visada yra vienas iš geriausių dokumentų. Sužinokite daugiau apie cp.

$vyras cp

mv komanda

Mv įrankis yra panašus į cp įrankį. Tačiau vietoj kopijavimo „mv“ perkelia failus ir katalogus. Palyginti su cp, jis yra paprastesnis.

„Mv“ komandų struktūra yra panaši į cp.

$mv <variantas> <šaltinis> <Kelionės tikslas>

Norėdami perkelti turinį dir_A į dir_A_copy , paleiskite šią komandą.

$mv -vdir_A/dir_A_copy

Čia vėliava -v skirta daugiakalbiai režimu. Jei norite perkelti tik dir_A turinį, naudokite šį. Tokiu atveju tikslinis katalogas turi būti iš anksto.

$mv -vdir_A/ *dir_A_copy

Mv įrankis neturi daug dirbti. Norėdami pamatyti visas galimas parinktis, peržiūrėkite vadovo puslapį.

$vyras mv

„Rsync“ komanda

Tai yra vienas populiariausių ir galingiausių failų kopijavimo įrankių, dažniausiai naudojamas atsarginėms kopijoms. Jis turi galimybę kopijuoti failus nuotoliniu ryšiu. Skirtingai nuo „cp“ ir „mv“, jame taip pat yra daugybė išplėstinių failų kopijavimo parinkčių, siūlančių kuo labiau pritaikyti jo elgesį.

„Rsync“ dažniausiai garsėja delta perdavimo algoritmu, kuris smarkiai sumažina duomenų, kuriais reikia keistis, kiekį. Nuotolinio sinchronizavimo atveju tai sutaupo daug pralaidumo.

„Rsync“ paprastai nėra iš anksto įdiegtas jokiame „Linux“ platinime. Tačiau dėl savo populiarumo jis dabar pasiekiamas visuose pagrindiniuose „Linux“ distribucijose. Naudoti Pkgs.org kad sužinotumėte savo distribucijos rsync paketą. Darant prielaidą, kad įdiegėte „rsync“, pradėkime.

Pirma, pagrindinė rsync komandų struktūra. Tai gana panašu į cp.

$rsync<galimybės> <šaltinis> <Kelionės tikslas>

Prieš pradėdami, čia yra keletas populiarių rsync argumentų.

  • -v : Daugiažodis režimas, parodo visus veiksmus, atliekamus konsolės ekrane.
  • -vv : Išsamus režimas su daugiau informacijos
  • -r : Rekursinis režimas, turi būti, jei kopijuojami katalogai
  • -Su : Suspausti duomenis
  • : Archyvuoti duomenis
  • -n : Sausas važiavimas, turėtų būti vykdomas kartu su daugiakalbiu režimu. Tiesiog parodo veiksmus, jei komanda turėjo būti vykdoma realiai
  • -Ištrinti : Ištrinkite failą (-us) ir katalogą (-us) paskirties kataloge, jei šaltinio kataloge jų nebėra
  • -ne visas failas : Priverčia rsync naudoti delta perdavimo algoritmą, nesvarbu. Naudinga tais atvejais, kai turite užtikrinti mažiausią įrašomų duomenų kiekį.
  • –Remove-source-file : Kopijuodami ištrinkite šaltinio failą (-us).

Patikrinkime juos veikdami. Pirma, katalogo kopija. Vykdykite šią komandą.

$rsync-vrdir_A/dir_A_copy

Norėdami gauti išsamesnės informacijos, naudokime -vv vėliavą.

$rsync-vv -rdir_A/dir_A_copy

Dabar pažvelkime į šaunią „rsync“ dalį. Aptarėme, kaip „rsync“ protingai kopijuoja tik modifikuotus failus, taupydamas pralaidumą ir įrašydamas diską. Laikas tai patikrinti veikloje. Šiame pavyzdyje veiksmas bus atliktas dir_A katalogą.

$rsync-vv --ne-visa bylamanekenas*dir_B/

Nepaisant to, kad įjungtas trikampis perdavimas, „rsync“ gali jo netaikyti, kai perduodate vietinius duomenis.

Dabar pažvelkime į sauso važiavimo funkciją. Prieš vykdydami bet kokią „rsync“ komandą, visada svarbu ją iš anksto išbandyti. Čia atsiranda sausas paleidimas. „Rsync“ išves, kas nutiks, jei komanda iš tikrųjų bus paleista.

$rsync-anvrdir_A/dir_A_copy

„Rsync“ taip pat gali dirbti su nuotoliniais katalogais, be problemų. Viskas, ko reikia, yra tinkamas SSH ryšys su sukonfigūruotais SSH raktais.

$ rsync<variantas> <local_dir>
<Vartotojo vardas> @<remote_host>:<target_dir>

Norite atlikti perkėlimo operaciją? Norėdami tai pamatyti „rsync“ požiūriu, „rsync“ nukopijuos šaltinio katalogo turinį ir ištrins šaltinio turinį.

$rsync-v --remove-source-files <šaltinis> <Kelionės tikslas>

Patikrinkite operacijos rezultatą.

$medisdir_A

$medisdir_A_copy

Galutinės mintys

„Cp“ ir „rsync“ yra dažniausiai naudojami įrankiai, skirti kopijuoti failus į „Linux“ terminalo aplanką. Abu jie taip pat puikiai tinka scenarijams kurti. Prieš diegdami būtinai išbandykite funkcijas.

Mėgautis!