Ricerca nel sito web

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 mv tools.

Questa versione modificata del comando cp aggiunge una barra di avanzamento insieme al tempo totale impiegato per completare 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 dà all'utente un'idea dello stato del processo di copia e del tempo necessario per il completamento.

Installa il comando di copia avanzata in Linux

L'unico modo per installare l'utilità Advanced-Copy nei sistemi Linux è compilare dai sorgenti utilizzando il seguente singolo comando curl, che scaricherà, patcherà, compilerà i coreutils e genererà il file 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

Esegui il comando seguente sul terminale per correggere l'errore ed esegui 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. Devi sostituire i comandi originali cp e mv 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 in 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 durante la copia di 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 disconnettersi e accedere di nuovo per far funzionare correttamente il sistema.

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.

Copia file con la barra di avanzamento

Ecco alcuni screenshot 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/

Sposta i file con la barra di avanzamento

Ecco un esempio del comando "mv" con uno screenshot.

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

Ricorda, i comandi originali non vengono sovrascritti se hai bisogno di usarli o se non sei soddisfatto della nuova barra di avanzamento e desideri ripristinare i comandi cp e mv originali > comandi. Puoi chiamarli tramite /usr/bin/cp o /usr/bin/mv.

Sono rimasto davvero colpito da questa nuova funzionalità della barra di avanzamento, almeno avrei avuto alcune informazioni sul tempo dell'operazione di copia e su cosa sta succedendo esattamente.

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