Hogyan másolhatok fájlokat egy mappából egy másik mappába a Linux terminálon

How Can I Copy Files Folder Into Another Folder Linux Terminal



Ha szüksége van egy könyvtár tartalmának másolására egy másikba, Linux esetén rengeteg eszköz áll rendelkezésére. Melyiket használni? Ez a helyzettől és a személyes preferenciáktól függ. Ebben a cikkben megvizsgáljuk, hogyan másolhatja át a fájlok tartalmát a terminál egyik mappájából a másikba. Ez tartalmaz néhány népszerű választást különböző helyzetekben.

Fájlmásolás a terminálon

Az egyik könyvtár tartalmának másolása egy másikba nagyon egyszerű feladat. Ennek ellenére rengeteg lehetősége van. A Linux számos eszközzel áldott meg a fájlok és könyvtárak különféle műveleteken keresztüli manipulálására.







Az összes lépést az Ubuntu 18.04.1 mutatja. Először hozzunk létre egy maréknyi dummy fájlt, amelyekkel dolgozhatunk.



$mkdir -vdir_A



Most hozzuk létre a dummy fájlokat az érintéssel.





$érintésszínlelt{1..10}

Hozzon létre egy másik mappát a dir_A -n belül egy maréknyi fájllal.



$mkdir -vdir_B
$érintésszínlelt{1..10}

Most a dir_A könyvtár teljes szerkezete így néz ki.

$fadir_A

Cp parancs

Az cp parancs messze a leggyakoribb eszköz a fájlok másolásához. Ez egy olyan eszköz, amely alapértelmezés szerint minden Linux rendszerhez tartozik. A fájlok és könyvtárak másolása a cp egyetlen célja. A funkciók széles skáláját támogatja.

Ez az alapszerkezet cp parancs.

$cp <lehetőségek> <forrás> <rendeltetési hely>

Például készítsünk másolatot a dummy1 fájl a nevével dummy1_copy .

$cpdummy1 dummy1_copy

Most próbáljuk meg egyszerre több fájlt másolni. Egy ilyen művelethez a cp megköveteli, hogy a cél egy könyvtár legyen. Itt helyettesítő karaktereket fogok használni az összes megragadásához színlelt fájlokat, és helyezze őket a ~/Letöltések Könyvtár.

$cpszínlelt*~/Letöltések

Mit szólnál egy könyvtár másolásához?

$cp -vrdir_A dir_A_copy

Itt két különböző zászlót használtunk. Vegyük sorra őket gyorsan.

  • -r: Az a rekurzív másolat (beleértve az összes rejtett fájlt). Kötelező jelző, ha a másolás egy teljes vagy több könyvtárat tartalmaz.
  • -v: azt jelenti bőbeszédű . A cp eszköz minden egyes műveletet kiad.

Szeretné követni a szimbolikus linkeket? Adja hozzá az -L jelzőt.

$cp -Lvr <forrás> <rendeltetési hely>

Tegyük fel, hogy a célkönyvtárban már van azonos nevű fájl. Ha szeretné elkerülni a felülírást, használja a -n zászlót. Biztosítja, hogy ütközés esetén a cp ne írja felül a fájlt.

$cp -nv <forrás> <rendeltetési hely>

Ha érzékeny másolási/beillesztési műveletet hajt végre, jobb, ha a lehető legjobban irányítja a történéseket, nem? Ebben az esetben használja az -i jelzőt. Ez egy interaktív módot jelent, ahol a cp megerősítést kér minden alkalommal, amikor konfliktus merül fel.

$cp -én <forrás> <rendeltetési hely>

Ha jobban érdekli, a man oldal mindig az egyik legjobb dokumentáció. További információ a cp -ről.

$Férfi cp

mv parancs

Az mv eszköz hasonló a cp eszközhöz. Másolás helyett azonban az mv fájlokat és könyvtárakat mozgat. A cp -hez képest ez egyszerűbb.

Az mv parancsszerkezete hasonló a cp -hez.

$mv <választási lehetőség> <forrás> <rendeltetési hely>

A tartalom mozgatásához dir_A nak nek dir_A_copy , futtassa a következő parancsot.

$mv -vdir_A/dir_A_copy

Itt a -v zászló bőbeszédű mód. Ha csak a dir_A tartalmát szeretné áthelyezni, használja a következőt. Ebben az esetben a célkönyvtárnak előbb léteznie kell.

$mv -vdir_A/ *dir_A_copy

Az mv eszköznek nincs sok dolga. Az összes rendelkezésre álló lehetőségért nézze meg a man oldalt.

$Férfi mv

Rsync parancs

Ez az egyik legnépszerűbb és legerősebb fájlmásolási eszköz, amelyet főleg biztonsági mentésre használnak. Képes fájlokat másolni távoli kapcsolaton keresztül. A cp -vel és az mv -vel ellentétben rengeteg fejlett fájlmásolási lehetőséggel is rendelkezik, amelyek a lehető legjobban testreszabják viselkedését.

Az Rsync leginkább delta-átviteli algoritmusáról híres, amely drámaian csökkenti a cserélni kívánt adatok mennyiségét. Távoli szinkronizálás esetén ez sok sávszélességet takarít meg.

Az Rsync általában egyetlen Linux disztribúcióban sincs előre telepítve. Népszerűsége miatt azonban már elérhető minden nagyobb Linux disztribúción. Használat Pkgs.org hogy megtudja az rsync csomagot a disztrójához. Feltételezve, hogy telepítve van az rsync, kezdjük.

Először is, az rsync alapvető parancsstruktúrája. Nagyon hasonlít a cp -hez.

$rsync<lehetőségek> <forrás> <rendeltetési hely>

Mielőtt elkezdené, íme néhány népszerű rsync érv.

  • -v : Részletes mód, a konzol képernyőjén végrehajtott műveleteket eredményezi.
  • -vv : Részletes mód további részletekkel
  • -r : Rekurzív mód, jelen kell lennie könyvtárak másolásakor
  • -Val vel : Adatok tömörítése
  • -nak nek : Archiválja az adatokat
  • -n : Szárazon futás, részletes móddal együtt kell futtatni. Egyszerűen csak akkor adja ki a műveleteket, ha a parancs valódi futtatásra kerül
  • -töröl : Törölje a fájlokat és könyvtárakat a célkönyvtárból, ha a forráskönyvtár már nem tartalmazza azokat
  • -nincs egész fájl : Arra kényszeríti az rsync -t, hogy használja a delta átviteli algoritmusát, bármi legyen is az. Hasznos olyan forgatókönyvekben, ahol biztosítani kell a legkevesebb adatírást.
  • –Remove-source-file : A forrásfájlok törlése másolás után.

Vizsgáljuk meg őket működés közben. Először is, a könyvtár másolatát. Futtassa a következő parancsot.

$rsync-vrdir_A/dir_A_copy

A további részletes kimenethez használjuk a -vv jelzőt.

$rsync-vv -rdir_A/dir_A_copy

Most nézzük meg az rsync menő részét. Megbeszéltük, hogy az rsync hogyan másol intelligensen csak a módosított fájlokat, sávszélességet és lemezírást takarítva meg. Itt az ideje, hogy működés közben ellenőrizze. Ebben a példában a műveletet a dir_A Könyvtár.

$rsync-vv --nem-egész-fájlszínlelt*dir_B/

Annak ellenére, hogy a delta-átvitel engedélyezve van, előfordulhat, hogy az rsync nem alkalmazza, amikor helyi adatátvitelt végez.

Most nézzük meg a száraz futás funkciót. Mielőtt bármilyen rsync parancsot ténylegesen futtatna, mindig fontos, hogy előtte tesztelje. Itt jön be a száraz futás. Az Rsync kiadja, hogy mi történik, ha a parancs ténylegesen futni fog.

$rsync-anvrdir_A/dir_A_copy

Az Rsync távoli könyvtárakkal is tud dolgozni, nem probléma. Csak egy megfelelő SSH kapcsolatra van szükség konfigurált SSH kulcsokkal.

$ rsync<választási lehetőség> <local_dir>
<felhasználónév> @<remote_host>:<rendeltetési_cím>

Mozgatási műveletet szeretne végrehajtani? Az rsync szemszögéből az rsync lemásolja a forráskönyvtár tartalmát, majd törli a forrástartalmat.

$rsync-v --remove-source-files <forrás> <rendeltetési hely>

Nézze meg a művelet eredményét.

$fadir_A

$fadir_A_copy

Végső gondolatok

A cp és az rsync a leggyakoribb eszközök, amelyek segítségével fájlokat másolhat egy mappába a Linux terminálon. Mindkettő nagyon jó a forgatókönyvíráshoz is. Csak győződjön meg róla, hogy teszteli a funkciókat a megvalósítás előtt.

Élvezd!