Copia del file nel terminale
Copiare il contenuto di una directory in un'altra è un compito molto semplice. Tuttavia, hai molte opzioni per farlo. Linux è benedetto con numerosi strumenti per manipolare file e directory attraverso varie azioni.
Tutti i passaggi sono dimostrati su Ubuntu 18.04.1. All'inizio, creiamo una manciata di file fittizi con cui lavorare.
$ mkdir -v dir_a
Ora, creiamo i file fittizi usando il tocco.
$ touch dummy 1… 10
Crea un'altra cartella all'interno di Dir_a con una manciata di file fittizi.
$ mkdir -v dir_b
$ touch dummy 1… 10
Ora, l'intera struttura della directory dir_a sembra questo.
$ TREE DIR_A
Comando cp
IL cp Il comando è di gran lunga lo strumento più comune per la copia dei file. È uno strumento che viene per impostazione predefinita con qualsiasi sistema Linux. La copia di file e directory è l'unico scopo di CP. Supporta una vasta gamma di funzionalità.
Questa è la struttura di base del cp comando.
$ cp
Ad esempio, facciamo una copia del Dummy1 File con il nome Dummy1_Copy.
$ cp dummy1 dummy1_copy
Ora, proviamo a copiare più file contemporaneamente. Per tale operazione, CP richiede che la destinazione sia una directory. Qui, userò l'espressione jolly per afferrare tutto il manichino file e metterli nel file ~/Download directory.
$ cp dummy* ~/downloads
Che ne dici di copiare una directory?
$ cp -vr dir_a dir_a_copy
Qui, abbiamo usato due bandiere diverse. Facciamo una breve rottura di loro.
Voglio seguire i collegamenti simbolici? Aggiungi il flag "-l".
$ cp -lvr
Diciamo che la directory di destinazione ha già un file con lo stesso nome. Se vuoi evitare il sovrascrittura, usa il flag "-n". Garantirà che in caso di conflitto, CP non sovrascriverà il file.
$ cp -nv
Se stai eseguendo un'azione di copia/incolla sensibile, è meglio avere il miglior controllo su ciò che accade, giusto? In tal caso, usa il flag "-i". Appoggia una modalità interattiva in cui CP chiederà conferma ogni volta che si presenta un conflitto.
$ cp -i
Se sei più interessato, la pagina Man è sempre una delle migliori documentazioni. Ulteriori informazioni su CP.
$ MAN CP
comando MV
Lo strumento MV è simile allo strumento CP. Tuttavia, invece di copiare, MV sposta file e directory. Rispetto a CP, è più semplice.
La struttura di comando di MV è simile a CP.
$ MV
Per spostare il contenuto di dir_a A dir_a_copy, Esegui il seguente comando.
$ mv -v dir_a/ dir_a_copy
Qui, la flag "-v" è per verboso modalità. Se vuoi spostare solo il contenuto di Dir_A, usa invece quello seguente. In questo caso, la directory target deve esistere in anticipo.
$ mv -v dir_a/* dir_a_copy
Lo strumento MV non ha molto con cui lavorare. Per tutte le opzioni disponibili, dai un'occhiata alla pagina Man.
$ Man MV
Comando rsync
Questo è uno degli strumenti più popolari e potenti per la copia dei file, utilizzato principalmente per il backup. Ha la possibilità di copiare i file su una connessione remota. A differenza di CP e MV, viene anche fornito con una tonnellata di opzioni di copia di file avanzate che offrono la massima personalizzazione del suo comportamento.
Rsync è per lo più famoso per il suo algoritmo del trasferimento delta che riduce drasticamente la quantità di dati che devono essere scambiati. Nel caso della sincronizzazione remota, questo risparmia molta larghezza di banda.
RSYNC non viene generalmente preinstallato in nessuna distribuzione di Linux. Tuttavia, a causa della sua popolarità, è ora disponibile su tutte le principali Distri Linux. Usa PKGS.Org per scoprire il pacchetto RSYNC per la tua distribuzione. Supponendo che tu abbia installato rsync, iniziamo.
Innanzitutto, la struttura di comando di base di rsync. È abbastanza simile a CP.
$ rsync
Prima di iniziare, ecco una manciata di argomenti RSYNC popolari.
Dai un'occhiata in azione. Innanzitutto, la copia della directory. Esegui il seguente comando.
$ rsync -vr dir_a/ dir_a_copy
Per ulteriori output dettagliati, usiamo il flag "-vv".
$ rsync -vv -r dir_a/ dir_a_copy
Ora, diamo un'occhiata alla parte interessante di rsync. Abbiamo discusso di come rsync copia in modo intelligente solo i file modificati, salvando la larghezza di banda e il disco scrittura. È ora di verificarlo in azione. In questo esempio, l'azione verrà eseguita all'interno del dir_a directory.
$ rsync -vv --no-whole-file dummy* dir_b/
Nonostante la trasmissione Delta abilitata, RSYNC potrebbe non applicarlo quando si esegue il trasferimento di dati locali.
Ora, diamo un'occhiata alla funzione di corsa a secco. Prima di eseguire qualsiasi comando RSYNC, è sempre importante testarlo in anticipo. Qui è dove arriva la corsa a secco. Rsync emetterà cosa accadrà se il comando dovesse effettivamente eseguire.
$ rsync -anvr dir_a/ dir_a_copy
RSYNC può anche funzionare con le directory remote, nessun problema. Tutto ciò di cui ha bisogno è una connessione SSH corretta con i tasti SSH configurati.
$ rsync
Vuoi eseguire un'operazione di spostamento? Per dirla nel punto di.
$ rsync -v--rimproveri
Dai un'occhiata al risultato dell'operazione.
$ TREE DIR_A
$ TREE DIR_A_COPY
Pensieri finali
I CP e RSYNC sono gli strumenti più comuni che è possibile utilizzare per la copia di file in una cartella sul terminale Linux. Entrambi sono anche davvero buoni per gli script. Assicurati solo di testare le funzioni prima dell'implementazione.
Godere!