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!