GNU/Linux >> Linux Esercitazione >  >> Linux

Copia avanzata:aggiungi la barra di avanzamento ai comandi cp e mv in Linux

Il GNU cpGNU mv gli strumenti sono usati per copiare e spostare file e directory nel sistema operativo GNU/Linux. Una caratteristica mancante in queste due utilità è che non mostrano alcuna barra di avanzamento. Se copi un file o una directory di grandi dimensioni, non sai davvero quanto tempo impiegherebbe il processo di copia per completare o la percentuale di dati copiati. Non vedrai quale file è attualmente in fase di copia o quanti sono già stati copiati. Tutto ciò che vedrai è solo il cursore lampeggiante e l'indicatore LED del disco rigido. Grazie a Copia avanzata , una patch per Gnu Coreutils , ora possiamo aggiungere la barra di avanzamento a cp e mv comandi in Linux e mostra la barra di avanzamento durante la copia e/o lo spostamento di file e directory di grandi dimensioni.

Advanced Copy è una mod per GNU cpGNU mv programmi. Aggiunge una barra di avanzamento e fornisce alcune informazioni su ciò che accade durante la copia o lo spostamento di file e cartelle. Non solo la barra di avanzamento, mostra anche la velocità di trasferimento dei dati, il tempo rimanente stimato e il nome del file che è attualmente in fase di copia. Alla fine vedrai un breve riepilogo su quanti file sono stati copiati e quanto tempo ci è voluto per copiare i file.

Installa la patch 'Advanced Copy' per aggiungere la barra di avanzamento ai comandi cp e mv in Linux

I comandi cp e mv fanno parte delle GNU coreutils . Quindi devi scaricare le ultime GNU coreutils da qui .

$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

Estrarre l'archivio scaricato utilizzando il comando:

$ tar xvJf coreutils-8.32.tar.xz

Questo comando estrarrà l'archivio coreutils in una cartella denominata coreutils-8.32 nella directory corrente. Cd in esso:

$ cd coreutils-8.32/

Scarica la patch di copia avanzata utilizzando il seguente comando:

$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch

Infine, applica la patch eseguendo i seguenti comandi uno per uno:

$ patch -p1 -i advcpmv-0.8-8.32.patch
$ ./configure
$ make

Ora due nuovi binari con patch, vale a dire cp e mv verrà creato nel coreutils-8.32/src cartella. Copiali nel tuo $PATH come di seguito:

$ sudo cp src/cp /usr/local/bin/cp
$ sudo cp src/mv /usr/local/bin/mv

Questo è tutto. Il cp e mv i comandi ora hanno la funzionalità della barra di avanzamento.

Ogni volta che vuoi una barra di avanzamento durante la copia o lo spostamento di file e directory, aggiungi semplicemente -g segnala come di seguito:

$ cp -g archlinux.iso mydownload/

Oppure usa --progress-bar bandiera:

$ cp --progress-bar archlinux.iso mydownload/

Risultato di esempio:

Copying at  25.7 MiB/s (about 0h 0m 1s remaining)
archlinux.iso                                                          568.1 MiB / 646.0 MiB
[=========================================================================>                  ] 87.9 %

Alla fine del processo di copia, vedrai quanti file sono stati copiati, quanto tempo ci è voluto per copiare i file e la velocità di trasferimento dei dati al secondo. Bello, vero?

1 files (646.0 MiB) copied in 11.8 seconds ( 54.7 MiB/s).

Per copiare una directory e le sue sottodirectory in modo ricorsivo, aggiungi semplicemente -R bandiera:

$ cp -gR directory1/ directory2/

Allo stesso modo, per spostare i file usando mv comando, esegui:

$ mv -g archlinux.iso mydownload/

Oppure, usa --progress-bar bandiera:

$ mv --progress-bar archlinux.iso mydownload/

Per spostare le directory con mv comando, usa:

$ mv -g directory1/ directory2/

Puoi anche creare alias per salvare alcune sequenze di tasti. Per farlo, modifica ~/.bashrc file:

$ nano ~/.bashrc

Aggiungi le seguenti righe alla fine:

alias cp='/usr/local/bin/cp -gR'
alias mv='/usr/local/bin/mv -g'

Premi Ctrl+o e Ctl+x per salvare e chiudere il file.

Ora esegui il seguente comando per rendere effettive le modifiche:

$ source ~/.bashrc

D'ora in poi, puoi semplicemente usare cp o mv comandi senza -g (o --progress-bar ) bandiera.

Si prega di notare che i programmi originali non vengono sovrascritti. Puoi comunque chiamarli in qualsiasi momento tramite /usr/bin/cp/usr/bin/mv .

Aggiunta della funzionalità della barra di avanzamento a cp e mv command è una buona idea se copi o sposti spesso molti file e directory di grandi dimensioni. Ora puoi vedere cosa sta succedendo esattamente durante la copia e lo spostamento dei file, invece di fissare lo schermo.

Nota:

L'autore originale ha inviato la patch al team, che mantiene GNU CoreUtils. Non uniranno questa patch, perché mv e cp sono funzionalità complete.


Linux
  1. Come disabilitare i comandi di spegnimento e riavvio in Linux

  2. Scopri la differenza tra i comandi "su" e "su -" in Linux

  3. Comandi Linux - Panoramica ed esempi

  4. Comandi Linux:job, bg e fg

  5. Comandi di riavvio e spegnimento di Linux

Comandi Pushd e Popd in Linux

Come aggiungere comandi Linux alla coda ed eseguirli uno per uno

Come utilizzare i comandi Pbcopy e Pbpaste su Linux

5 comandi divertenti da usare in Linux e Terminal

40 Esempio pratico e produttivo di comandi Linux df

Comprimere e decomprimere i comandi in Linux/Unix