Copia avanzata: mostra l'avanzamento durante la copia dei file in Linux


Advanced-Copy è un potente programma a riga di comando che è molto simile, ma una versione leggermente modificata del comando cp originale e degli strumenti mv.

Questa versione modificata del comando cp aggiunge una barra di avanzamento insieme al tempo totale impiegato per il completamento durante la copia di file di grandi dimensioni da una posizione a un'altra.

Questa funzionalità aggiuntiva è molto utile soprattutto durante la copia di file di grandi dimensioni, e questo dà un'idea all'utente sullo stato del processo di copia e quanto tempo ci vuole per completarlo.

Installa il comando di copia avanzata in Linux

L'unico modo per installare l'utility Advanced-Copy nei sistemi Linux è creare dai sorgenti usando il seguente comando single curl, che scaricherà, correggerà, compilerà coreutils e genererà i file: ./advcpmv/advcp e ./advcpmv/advmv.

# curl https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh --create-dirs -o ./advcpmv/install.sh && (cd advcpmv && sh install.sh)

Potresti ricevere il seguente errore durante il processo di installazione.

checking whether mknod can create fifo without root privileges... configure: error: in `/root/advcpmv/coreutils-9.1':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details

Eseguire il seguente comando sul terminale per correggere l'errore ed eseguire nuovamente il comando curl.

# export FORCE_UNSAFE_CONFIGURE=1
# curl https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh --create-dirs -o ./advcpmv/install.sh && (cd advcpmv && sh install.sh)

Una volta completata l'installazione, vengono creati due nuovi comandi in ./advcpmv/advcp e ./advcpmv/advmv. È necessario sostituire i comandi cp e mv originali con questi due nuovi comandi per ottenere la barra di avanzamento durante la copia dei file.

# mv ./advcpmv/advcp /usr/local/bin/cp
# mv ./advcpmv/advmv /usr/local/bin/mv

Nota: se non desideri copiare questi comandi nei percorsi di sistema standard, puoi comunque eseguirli dalla directory di origine come ./advcpmv/advcp e ./advcpmv/advmv o creare nuovi comandi come mostrato.

# mv ./advcpmv/advcp /usr/local/bin/cpg
# mv ./advcpmv/advmv /usr/local/bin/mvg

Mostra la barra di avanzamento durante la copia di file e directory

Se vuoi che la barra di avanzamento appaia sempre mentre copi file e directory, devi aggiungere le seguenti righe al tuo file ~/.bashrc.

# echo alias cp '/usr/local/bin/advcp -g' >> ~/.bashrc
# echo alias mv '/usr/local/bin/advmv -g' >> ~/.bashrc

Devi disconnetterti e accedere di nuovo affinché funzioni correttamente.

Come utilizzare il comando di copia avanzata in Linux

Il comando è lo stesso, l'unica modifica è l'aggiunta dell'opzione \-g” o \–progress-bar” con il comando cp. L'opzione -R serve per copiare le directory in modo ricorsivo.

Ecco alcune schermate di esempio di un processo di copia utilizzando il comando di copia avanzato.

# cp -gR ubuntu-20.04.3-desktop-amd64.iso /home/tecmint/
OR
# cp -R --progress-bar ubuntu-20.04.3-desktop-amd64.iso /home/tecmint/

Ecco un esempio del comando mv con uno screenshot.

# mv --progress-bar Songs/ /data/
OR
# mv -g Songs/ /data/

Ricorda che i comandi originali non vengono sovrascritti se hai bisogno di usarli o se non sei soddisfatto della nuova barra di avanzamento e vuoi tornare ai comandi cp e mv originali. Puoi chiamarli tramite /usr/bin/cp o /usr/bin/mv.

Sono davvero impressionato da questa nuova funzione della barra di avanzamento, almeno saprei alcune informazioni sul tempo dell'operazione di copia e su cosa sta succedendo esattamente.

Potrebbe piacerti anche:

  • Come copiare file e directory in Linux [14 esempi di comandi cp]
  • Come monitorare l'avanzamento dei dati (copia/backup/compressione) utilizzando il comando pv

Nel complesso posso dire che è davvero un ottimo strumento da avere in tasca, specialmente quando passi molto tempo a copiare e spostare file attraverso la riga di comando.