Kuidas kopeerida kausta faile Linuxi terminali teise kausta?

How Can I Copy Files Folder Into Another Folder Linux Terminal



Kui teil on vaja kataloogi sisu teise kopeerida, on Linuxi puhul teie käsutuses palju tööriistu. Kumba kasutada? See sõltub olukorrast ja isiklikest eelistustest. Selles artiklis vaatleme võimalusi, kuidas saate faili sisu kopeerida terminali ühest kaustast teise. See sisaldab mõningaid populaarseid valikuid erinevates olukordades.

Failide kopeerimine terminalis

Ühe kataloogi sisu kopeerimine teise on väga lihtne ülesanne. Siiski on teil selle tegemiseks palju võimalusi. Linux on õnnistatud arvukate tööriistadega failide ja kataloogide manipuleerimiseks erinevate toimingute kaudu.







Kõik toimingud on näidatud Ubuntu 18.04.1. Alustuseks loome käputäis näiv faile, millega töötada.



$mkdir -vdir_A



Nüüd loome näivfailid puudutusega.





$puudutadanäiv{1..10}

Loome dir_A -s teise kausta käputäie näivfailidega.



$mkdir -vdir_B
$puudutadanäiv{1..10}

Nüüd näeb kataloogi dir_A kogu struktuur välja selline.

$puudir_A

Cp käsk

The cp käsk on kaugelt kõige levinum tööriist failide kopeerimiseks. See on tööriist, mis on vaikimisi kaasas mis tahes Linuxi süsteemiga. Failide ja kataloogide kopeerimine on cp ainus eesmärk. See toetab laia valikut funktsioone.

See on selle põhistruktuur cp käsk.

$cp <võimalusi> <allikas> <sihtkoht>

Näiteks teeme koopia näiv 1 fail nimega dummy1_copy .

$cpdummy1 dummy1_copy

Proovime nüüd kopeerida mitu faili korraga. Sellise toimingu jaoks nõuab cp, et sihtkohaks oleks kataloog. Siin kasutan kõigi märksõnade haaramiseks metamärke näiv failid ja pange need kausta ~/Allalaadimised kataloogi.

$cpnäiv*~/Allalaadimised

Kuidas oleks kataloogi kopeerimisega?

$cp -vrdir_A dir_A_copy

Siin kasutasime kahte erinevat lippu. Teeme neist kiire jaotuse.

  • -r: tähistab a korduv koopia (sh kõik peidetud failid). Must-have lipp, kui kopeerimine hõlmab tervet kataloogi või rohkem.
  • -v: tähistab paljusõnaline . Cp tööriist väljastab iga toimingu, mida see teeb.

Kas soovite järgida sümboolseid linke? Lisage -L lipp.

$cp -Lvr <allikas> <sihtkoht>

Oletame, et sihtkataloogis on juba samanimeline fail. Kui soovite ülekirjutamist vältida, kasutage lippu -n. See tagab, et konflikti korral ei kirjuta cp faili üle.

$cp -nv <allikas> <sihtkoht>

Kui teete tundlikku kopeerimise/kleepimise toimingut, on parem juhtimist kõige paremini kontrollida, eks? Sellisel juhul kasutage -i lippu. See tähistab interaktiivset režiimi, kus cp küsib kinnitust iga kord, kui konflikt tekib.

$cp -mina <allikas> <sihtkoht>

Kui olete rohkem huvitatud, on man -leht alati üks parimaid dokumente. Lisateave cp kohta.

$mees cp

mv käsk

Mv tööriist on sarnane cp tööriistaga. Kopeerimise asemel teisaldab mv aga faile ja katalooge. Võrreldes cp -ga on see lihtsam.

Mv käsustruktuur sarnaneb cp -ga.

$mv <valik> <allikas> <sihtkoht>

Sisu teisaldamiseks dir_A et dir_A_copy , käivitage järgmine käsk.

$mv -vdir_A/dir_A_copy

Siin on -v lipp mõeldud paljusõnaline režiimi. Kui soovite teisaldada ainult dir_A sisu, kasutage selle asemel järgmist. Sel juhul peab sihtkataloog olema eelnevalt olemas.

$mv -vdir_A/ *dir_A_copy

Mv -tööriistal pole palju tööd. Kõigi saadaolevate valikute kohta vaadake man -lehte.

$mees mv

Rsynci käsk

See on üks populaarsemaid ja võimsamaid failide kopeerimise tööriistu, mida kasutatakse enamasti varundamiseks. Sellel on võimalus kopeerida faile kaugühenduse kaudu. Erinevalt cp -st ja mv -st on sellel ka palju täiustatud failide kopeerimise võimalusi, mis pakuvad selle käitumise ülimat kohandamist.

Rsync on enamasti kuulus delta-ülekande algoritmi poolest, mis vähendab järsult vahetatavate andmete hulka. Kaugsünkroonimise korral säästab see palju ribalaiust.

Rsync ei ole tavaliselt üheski Linuxi distributsioonis eelinstallitud. Kuid selle populaarsuse tõttu on see nüüd saadaval kõigis suuremates Linuxi distributsioonides. Kasutamine Pkgs.org et teada saada oma distro rsynci pakett. Eeldades, et olete installinud rsynci, alustame.

Esiteks rsynci põhiline käsustruktuur. See on cp -ga üsna sarnane.

$rsync<võimalusi> <allikas> <sihtkoht>

Enne alustamist on siin käputäis populaarseid rsynci argumente.

  • -v : Mitmekülgne režiim, väljastab kõik toimingud, mida konsooli ekraanil tehakse.
  • -vv : Üksikasjalik režiim, kus on rohkem üksikasju
  • -r : Rekursiivne režiim, peab kataloogide kopeerimisel olema olemas
  • -Koos : Andmete tihendamine
  • -juurde : Arhiivige andmed
  • -n : Kuivjooks, tuleks kasutada koos paljusõnalise režiimiga. Väljendab lihtsalt toimingud, kui käsk pidi reaalselt käima
  • - kustutada : Kustutage fail (id) ja kataloog (id) sihtkataloogist, kui lähtekataloog neid enam ei sisalda
  • -pole tervet faili : Sunnib rsynci kasutama oma deltaülekande algoritmi, olenemata sellest. Kasulik stsenaariumides, kus peate tagama minimaalse andmete kirjutamise.
  • –Remove-source-file : Kustutage pärast kopeerimist lähtefail (id).

Vaatame neid tegevuses. Esiteks kataloogi koopia. Käivitage järgmine käsk.

$rsync-vrdir_A/dir_A_copy

Täpsema väljundi saamiseks kasutame lippu -vv.

$rsync-vv -rdir_A/dir_A_copy

Nüüd vaatame rsynci lahedat osa. Arutasime, kuidas rsync arukalt kopeerib ainult muudetud faile, säästes ribalaiust ja ketta kirjutamist. On aeg seda tegevuses kontrollida. Selles näites viiakse toiming läbi dir_A kataloogi.

$rsync-vv -pole tervet failinäiv*dir_B/

Vaatamata delta-edastuse lubamisele ei pruugi rsync seda rakendada, kui teete kohalikku andmeedastust.

Vaatame nüüd kuiva jooksu funktsiooni. Enne reaalse rsync -käsu käivitamist on alati oluline seda eelnevalt testida. Siin tuleb sisse kuivkäik. Rsync väljastab, mis juhtub, kui käsk tegelikult käivitada.

$rsync-anvrdir_A/dir_A_copy

Rsync saab töötada ka kaugkataloogidega, pole probleemi. Kõik, mida vaja, on korralik SSH -ühendus koos konfigureeritud SSH -võtmetega.

$ rsync<valik> <local_dir>
<kasutajanimi> @<remote_host>:<sihtkoha_dir>

Kas soovite teha liigutusoperatsiooni? Selle rsynci perspektiivi vaatamiseks kopeerib rsync lähtekataloogi sisu ja kustutab seejärel allikasisu.

$rsync-v --remove-source-files <allikas> <sihtkoht>

Vaadake operatsiooni tulemust.

$puudir_A

$puudir_A_copy

Lõplikud mõtted

Cp ja rsync on kõige levinumad tööriistad, mida saate kasutada Linuxi terminali kausta failide kopeerimiseks. Mõlemad on ka skriptimiseks väga head. Enne rakendamist kontrollige kindlasti funktsioone.

Nautige!