Com puc copiar fitxers d’una carpeta a una altra carpeta del terminal Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Quan necessiteu copiar el contingut d’un directori en un altre, en el cas de Linux, hi ha moltes eines a la vostra disposició. Quina utilitzar? Depèn de la situació i de les preferències personals. En aquest article, veurem maneres de copiar el contingut del fitxer d’una carpeta a una altra al terminal. Inclourà algunes de les opcions més populars per a diferents situacions.

Còpia de fitxers al terminal

Copiar el contingut d’un directori en un altre és una tasca molt senzilla. Tanmateix, teniu moltes opcions per fer-ho. Linux compta amb nombroses eines per manipular fitxers i directoris mitjançant diverses accions.







Tots els passos es mostren a Ubuntu 18.04.1. Al principi, creem un grapat de fitxers ficticis amb els quals treballar.



$mkdir -vdir_A



Ara, anem a crear els fitxers ficticis mitjançant el tacte.





$tocarmaniquí{1..10}

Creem una altra carpeta a dir_A amb un grapat de fitxers ficticis.



$mkdir -vdir_B
$tocarmaniquí{1..10}

Ara, tota l'estructura del directori dir_A té aquest aspecte.

$arbredir_A

Ordre Cp

El cp L'ordre és, amb diferència, l'eina més comuna per copiar fitxers. És una eina que s’inclou per defecte amb qualsevol sistema Linux. La còpia de fitxers i directoris és l’únic propòsit de cp. Admet una àmplia gamma de funcions.

Aquesta és l 'estructura bàsica del cp comandament.

$cp <opcions> <font> <destí>

Per exemple, fem una còpia del maniquí1 arxiu amb el nom dummy1_copy .

$cpdummy1 dummy1_copy

Ara, provem de copiar diversos fitxers alhora. Per a aquesta operació, cp requereix que la destinació sigui un directori. Aquí utilitzaré l’expressió comodí per agafar-ne tot maniquí i poseu-los al fitxer ~ / Baixades directori.

$cpmaniquí*~/Descàrregues

Què tal copiar un directori?

$cp -vrdir_A dir_A_copy

Aquí hem utilitzat dues banderes diferents. Anem a fer-ne un repartiment ràpid.

  • -r: significa a recursiu copia (inclosos els fitxers ocults). Indicador obligatori si la còpia implica un directori sencer o més.
  • -v: significa detallada . L'eina CP generarà cada acció que realitzi.

Voleu seguir els enllaços simbòlics? Afegiu el senyalador -L.

$cp -Lvr <font> <destí>

Suposem que el directori de destinació ja té un fitxer amb el mateix nom. Si voleu evitar sobreescriure, utilitzeu el senyalador -n. Assegurarà que en cas de conflicte, cp no sobreescriurà el fitxer.

$cp -nv <font> <destí>

Si feu una acció sensible de copiar / enganxar, és millor tenir el millor control sobre què passa, oi? En aquest cas, utilitzeu el senyalador -i. Significa un mode interactiu on CP demanarà confirmació cada vegada que sorgeixi un conflicte.

$cp -i <font> <destí>

Si us interessa més, la pàgina manual sempre és una de les millors documentacions. Més informació sobre CP.

$home cp

ordre mv

L'eina mv és similar a l'eina cp. No obstant això, en lloc de copiar, mv mou fitxers i directoris. En comparació amb CP, és més senzill.

L’estructura d’ordres de mv és similar a cp.

$mv <opció> <font> <destí>

Per moure el contingut de dir_A a dir_A_copy , executeu l'ordre següent.

$mv -vdir_A/dir_A_copy

Aquí, la bandera -v és per a detallada mode. Si voleu moure només el contingut de dir_A, utilitzeu el següent. En aquest cas, el directori de destinació ha d’existir prèviament.

$mv -vdir_A/ *dir_A_copy

L’eina mv no té molt a treballar. Per veure totes les opcions disponibles, consulteu la pàgina manual.

$home mv

Ordre Rsync

Aquesta és una de les eines més populars i potents per a la còpia de fitxers, que s’utilitza principalment per fer còpies de seguretat. Té la possibilitat de copiar fitxers mitjançant una connexió remota. A diferència de cp i mv, també inclou una gran quantitat d’opcions avançades de còpia de fitxers que ofereixen la màxima personalització del seu comportament.

Rsync és famós sobretot pel seu algorisme de transferència delta que redueix dràsticament la quantitat de dades que cal intercanviar. En el cas de la sincronització remota, això estalvia molta amplada de banda.

Rsync no sol estar preinstal·lat en cap distribució de Linux. Tot i això, a causa de la seva popularitat, ara està disponible a totes les principals distribucions de Linux. Ús Pkgs.org per esbrinar el paquet rsync per a la vostra distribució. Suposant que teniu instal·lat rsync, comencem.

En primer lloc, l'estructura bàsica d'ordres de rsync. És bastant similar a CP.

$rsync<opcions> <font> <destí>

Abans de començar, aquí teniu un grapat d’arguments rsync populars.

  • -v : Mode detallat, genera qualsevol acció que es realitzi a la pantalla de la consola.
  • -vv : Mode detallat amb més detalls
  • -r : El mode recursiu, ha d'estar present si es copien directoris
  • -Amb : Comprimeix les dades
  • -a : Arxivar dades
  • -n : Execució en sec, s'ha d'executar en combinació amb el mode detallat. Simplement emet les accions si l'ordre s'executaria de debò
  • –Esborra : Suprimiu els fitxers i els directoris del directori de destinació si el directori d'origen ja no els conté
  • -no-fitxer sencer : Força rsync a utilitzar el seu algorisme de transmissió delta, passi el que passi. Útil en escenaris en què heu d'assegurar la menor quantitat d'escriptura de dades.
  • –Remove-source-file : Esborreu els fitxers font després de copiar-los.

Vegem-los en acció. En primer lloc, la còpia del directori. Executeu l'ordre següent.

$rsync-vrdir_A/dir_A_copy

Per obtenir més informació detallada, fem servir el senyalador -vv.

$rsync-vv -rdir_A/dir_A_copy

Ara, comprovem la part interessant de rsync. Vam discutir com rsync copia intel·ligentment només els fitxers modificats, estalviant amplada de banda i escriptura en disc. És hora de comprovar-ho en acció. En aquest exemple, l'acció es durà a terme dins del fitxer dir_A directori.

$rsync-vv --no-full-filemaniquí*dir_B/

Tot i la transmissió delta habilitada, és possible que rsync no l’apliqui quan feu una transferència de dades local.

Ara, comprovem la funció de funcionament en sec. Abans d’executar qualsevol ordre rsync de debò, sempre és important que proveu prèviament. Aquí és on entra la prova en sec. Rsync produirà el que passarà si l'ordre s'executés realment.

$rsync-anvrdir_A/dir_A_copy

Rsync també pot funcionar amb directoris remots, sense cap problema. Tot el que necessita és una connexió SSH adequada amb les claus SSH configurades.

$ rsync<opció> <local_dir>
<nom d'usuari> @<remot_amfitrió>:<dir_destinació>

Voleu realitzar una operació de trasllat? Per posar-ho en la perspectiva de rsync, rsync copiarà el contingut del directori d'origen i, a continuació, suprimirà el contingut d'origen.

$rsync-v --remove-source-files <font> <destí>

Consulteu el resultat de l'operació.

$arbredir_A

$arbredir_A_copy

Pensaments finals

El cp i el rsync són les eines més habituals que podeu utilitzar per copiar fitxers en una carpeta del terminal Linux. Tots dos també són molt bons per a la creació de guions. Assegureu-vos de provar les funcions abans de la implementació.

Gaudeix-ne!