Paano ko makokopya ang Mga File sa isang Folder sa Isa pang Folder sa Linux Terminal

How Can I Copy Files Folder Into Another Folder Linux Terminal



Kapag kailangan mong kopyahin ang mga nilalaman ng isang direktoryo sa iba pa, sa kaso ng Linux, maraming mga tool na magagamit mo. Alin ang gagamitin? Depende ito sa sitwasyon at personal na kagustuhan. Sa artikulong ito, titingnan namin ang mga paraan na maaari mong kopyahin ang mga nilalaman ng file mula sa isang folder patungo sa isa pa sa terminal. Magtatampok ito ng ilan sa mga tanyag na pagpipilian para sa iba't ibang mga sitwasyon.

Ang pagkopya ng file sa terminal

Ang pagkopya ng nilalaman ng isang direktoryo sa isa pa ay isang napaka-simpleng gawain. Gayunpaman, mayroon kang maraming mga pagpipilian ng paggawa nito. Ang Linux ay pinagpala ng maraming mga tool upang manipulahin ang mga file at direktoryo sa pamamagitan ng iba't ibang mga pagkilos.







Ang lahat ng mga hakbang ay ipinakita sa Ubuntu 18.04.1. Sa una, lumikha tayo ng isang bilang ng mga dummy file upang gumana.



$mkdir -vdir_A



Ngayon, likhain natin ang mga dummy file gamit ang touch.





$hawakandummy{1..10}

Lumikha tayo ng isa pang folder sa loob ng dir_A na may kaunting mga dummy file.



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

Ngayon, ang buong istraktura ng direktoryo ng dir_A ay ganito.

$punodir_A

Cp Command

Ang cp Ang utos ay, sa ngayon, ang pinakakaraniwang tool para sa pagkopya ng mga file. Ito ay isang tool na nanggagaling bilang default sa anumang Linux system. Ang pagkopya ng mga file at direktoryo ay ang nag-iisang layunin ng cp. Sinusuportahan nito ang isang malawak na hanay ng mga tampok.

Ito ang pangunahing istraktura ng cp utos

$cp <mga pagpipilian> <pinagmulan> <patutunguhan>

Halimbawa, gumawa tayo ng isang kopya ng dummy1 file na may pangalan dummy1_copy .

$cpdummy1 dummy1_copy

Ngayon, subukan nating kumopya ng maraming mga file nang sabay-sabay. Para sa isang pagpapatakbo, kinakailangan ng cp ang patutunguhan na maging isang direktoryo. Dito, gagamit ako ng expression ng wildcard upang makuha ang lahat dummy file at ilagay ang mga ito sa ~ / Mga Pag-download direktoryo

$cpdummy*~/Mga Pag-download

Paano ang tungkol sa pagkopya ng isang direktoryo?

$cp -vrdir_A dir_A_copy

Dito, gumamit kami ng dalawang magkakaibang watawat. Magkaroon tayo ng mabilis na pagkasira sa kanila.

  • -r: Tumayo para sa a recursive kopyahin (kabilang ang anumang mga nakatagong (mga) file). Kailangang magkaroon ng watawat kung ang pagkopya ay nagsasangkot ng isang buong direktoryo o higit pa.
  • -v: Tumayo para sa pandiwang . Ang tool ng cp ay maglalabas ng bawat solong pagkilos na ginagawa nito.

Nais na sundin ang mga simbolikong link? Idagdag ang flag na -L.

$cp -Lvr <pinagmulan> <patutunguhan>

Sabihin nating ang direktoryo ng patutunguhan ay mayroon nang isang file na may parehong pangalan. Kung nais mong maiwasan ang pag-o-overtake, gamitin ang -n flag. Titiyakin nito na sa kaso ng pagkakasalungatan, hindi mai-o-overlap ng cp ang file.

$cp -nv <pinagmulan> <patutunguhan>

Kung nagsasagawa ka ng isang sensitibong pagkilos na kopya / i-paste, mas mahusay na magkaroon ng pinakamahusay na kontrol sa kung ano ang mangyayari, tama ba? Sa ganoong kaso, gamitin ang flag ng -i. Ito ay kumakatawan sa isang interactive mode kung saan hihilingin ng cp ang kumpirmasyon sa tuwing may hindi pagkakasundo.

$cp -ako <pinagmulan> <patutunguhan>

Kung mas interesado ka, ang pahina ng tao ay palaging isa sa pinakamahusay na dokumentasyon. Dagdagan ang nalalaman tungkol sa cp.

$lalaki cp

utos ng mv

Ang tool na mv ay katulad ng tool sa cp. Gayunpaman, sa halip na kumopya, ilipat ng mv ang mga file at direktoryo. Kung ikukumpara sa cp, ito ay isang mas simple.

Ang istraktura ng utos ng mv ay katulad ng cp.

$mv <pagpipilian> <pinagmulan> <patutunguhan>

Upang ilipat ang nilalaman ng dir_A sa dir_A_copy , patakbuhin ang sumusunod na utos.

$mv -vdir_A/dir_A_copy

Dito, ang -v flag ay para sa pandiwang mode Kung nais mong ilipat lamang ang mga nilalaman ng dir_A, gamitin ang sumusunod sa halip. Sa kasong ito, ang direktoryo ng target ay dapat na mayroon muna.

$mv -vdir_A/ *dir_A_copy

Ang tool na mv ay walang gaanong gagana. Para sa lahat ng mga magagamit na pagpipilian, tingnan ang pahina ng tao.

$lalaki mv

Utos ng Rsync

Ito ay isa sa pinakatanyag at makapangyarihang tool para sa pagkopya ng file, ginamit karamihan para sa pag-backup. Humahawak ito ng kakayahang kopyahin ang mga file sa isang remote na koneksyon. Hindi tulad ng cp at mv, mayroon din itong isang toneladang advanced na mga pagpipilian sa pagkopya ng file na nag-aalok ng pinakamataas na pagpapasadya ng pag-uugali nito.

Karamihan sa sikat ang Rsync para sa delta-transfer algorithm na labis na binabawasan ang dami ng data na kailangang palitan. Sa kaso ng remote na pag-sync, nakakatipid ito ng maraming bandwidth.

Ang Rsync ay karaniwang hindi paunang naka-install sa anumang distro ng Linux. Gayunpaman, dahil sa katanyagan nito, magagamit na ito sa lahat ng mga pangunahing distrito ng Linux. Gamitin Pkgs.org upang malaman ang rsync package para sa iyong distro. Ipagpalagay na na-install mo ang rsync, magsimula na tayo.

Una, ang pangunahing istraktura ng utos ng rsync. Medyo katulad ito sa cp.

$rsync<mga pagpipilian> <pinagmulan> <patutunguhan>

Bago magsimula, narito ang ilang mga tanyag na rsync argument.

  • -v : Ang mode ng Verbose, ay naglalabas ng anumang pagkilos na ginagawa sa screen ng console.
  • -vv : Verbose mode na may higit pang mga detalye
  • -r : Recursive mode, dapat naroroon kung kumokopya ng mga direktoryo
  • -Nga : I-compress ang data
  • -sa : Data ng archive
  • -n : Ang dry run, dapat patakbuhin na may kasamang mode na verbose. Lumalabas lamang ang mga pagkilos kung ang utos ay tatakbo para sa totoong
  • –Delete : Tanggalin ang (mga) file at (mga) direktoryo sa direktoryo ng patutunguhan kung hindi na naglalaman ang mga ito ng direktoryo ng pinagmulan ng mga ito nang mas matagal
  • -no-buong-file : Puwersa rsync na gamitin ang delta transmission algorithm, anuman ang mangyari. Kapaki-pakinabang sa mga sitwasyon kung saan dapat mong matiyak ang pinakamaliit na halaga ng pagsulat ng data.
  • –Tanggal-source-file : Tanggalin ang (mga) file ng mapagkukunan pagkatapos makopya.

Suriin natin ang mga ito sa pagkilos. Una, ang kopya ng direktoryo. Patakbuhin ang sumusunod na utos.

$rsync-vrdir_A/dir_A_copy

Para sa karagdagang detalyadong output, gamitin natin ang -vv flag.

$rsync-vv -rdir_A/dir_A_copy

Ngayon, suriin natin ang cool na bahagi ng rsync. Tinalakay namin kung paano maingat na kinokopya ng rsync ang mga file lamang na binago, nagse-save ng bandwidth at disk na nagsusulat. Panahon na upang suriin ito sa pagkilos. Sa halimbawang ito, ang pagkilos ay isasagawa sa loob ng dir_A direktoryo

$rsync-vv --no-buong-filedummy*dir_B/

Sa kabila ng pinagana ng delta-transmission, maaaring hindi ito ilapat ng rsync kapag nagsasagawa ka ng lokal na paglilipat ng data.

Ngayon, tingnan natin ang tampok na dry run. Bago patakbuhin ang anumang utos ng rsync para sa totoong, laging mahalaga na subukan mo ito bago pa man. Dito papasok ang dry run. Ang Rsync ay maglalabas kung ano ang mangyayari kung ang utos ay talagang tatakbo.

$rsync-anvrdir_A/dir_A_copy

Maaari ring gumana ang Rsync sa mga malalayong direktoryo, walang problema. Ang kailangan lang nito ay isang tamang koneksyon sa SSH na may naka-configure na mga key ng SSH.

$ rsync<pagpipilian> <local_dir>
<username> @<remote_host>:<patutunguhan_dir>

Nais bang magsagawa ng isang operasyon ng paglipat? Upang ilagay iyon sa pananaw ni rsync, kokopyahin ng rsync ang mga nilalaman ng direktoryo ng pinagmulan at pagkatapos, tatanggalin ang nilalaman ng pinagmulan.

$rsync-v --tanggal-source-files <pinagmulan> <patutunguhan>

Suriin ang resulta ng operasyon.

$punodir_A

$punodir_A_copy

Pangwakas na saloobin

Ang cp at rsync ang pinakakaraniwang mga tool na maaari mong gamitin para sa pagkopya ng mga file sa isang folder sa Linux terminal. Pareho din sa kanila ang talagang mahusay para sa pag-script. Siguraduhin lamang na subukan ang mga pagpapaandar bago ipatupad.

Mag-enjoy!