Il GNU cp
e GNU 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 cp
e GNU 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
o /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.