GNU/Linux >> Tutoriels Linux >  >> Linux

Copie avancée - Ajouter une barre de progression aux commandes cp et mv sous Linux

Le GNU cp et GNU mv Les outils sont utilisés pour copier et déplacer des fichiers et des répertoires dans le système d'exploitation GNU/Linux. Une fonctionnalité manquante dans ces deux utilitaires est qu'ils ne vous montrent aucune barre de progression. Si vous copiez un fichier ou un répertoire volumineux, vous ne savez vraiment pas combien de temps le processus de copie prendrait, ni le pourcentage de données copiées. Vous ne verrez pas quel fichier est actuellement copié, ni combien ont déjà été copiés. Tout ce que vous verrez est juste le curseur clignotant et l'indicateur LED du disque dur. Grâce à Advanced Copy , un correctif pour Gnu Coreutils , nous pouvons maintenant ajouter une barre de progression à cp et mv commandes sous Linux et afficher la barre de progression lors de la copie et/ou du déplacement de fichiers et de répertoires volumineux.

Advanced Copy est un mod pour le GNU cp et GNU mv programmes. Il ajoute une barre de progression et fournit des informations sur ce qui se passe pendant que vous copiez ou déplacez des fichiers et des dossiers. Non seulement la barre de progression, mais aussi le taux de transfert de données, le temps restant estimé et le nom du fichier en cours de copie. À la fin, vous verrez un bref résumé du nombre de fichiers copiés et du temps qu'il a fallu pour copier les fichiers.

Installer le correctif "Advanced Copy" pour ajouter une barre de progression aux commandes cp et mv sous Linux

Les commandes cp et mv font partie des GNU coreutils . Vous devez donc télécharger les derniers GNU coreutils d'ici .

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

Extrayez l'archive téléchargée à l'aide de la commande :

$ tar xvJf coreutils-8.32.tar.xz

Cette commande extraira l'archive coreutils dans un dossier nommé coreutils-8.32 dans le répertoire courant. CD dedans :

$ cd coreutils-8.32/

Téléchargez le correctif Advanced Copy à l'aide de la commande suivante :

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

Enfin, appliquez le patch en exécutant les commandes suivantes une par une :

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

Maintenant deux nouveaux binaires corrigés à savoir cp et mv sera créé dans le coreutils-8.32/src dossier. Copiez-les simplement dans votre $PATH comme ci-dessous :

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

C'est ça. Le cp et mv les commandes ont maintenant une fonctionnalité de barre de progression.

Chaque fois que vous voulez une barre de progression lors de la copie ou du déplacement de fichiers et de répertoires, ajoutez simplement -g drapeau comme ci-dessous :

$ cp -g archlinux.iso mydownload/

Ou utilisez --progress-bar drapeau :

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

Exemple de résultat :

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

À la fin du processus de copie, vous verrez combien de fichiers ont été copiés, combien de temps il a fallu pour copier le ou les fichiers et le taux de transfert de données par seconde. Sympa, n'est-ce pas ?

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

Pour copier un répertoire et ses sous-répertoires de manière récursive, il suffit d'ajouter -R drapeau :

$ cp -gR directory1/ directory2/

De même, pour déplacer des fichiers en utilisant mv commande, exécutez :

$ mv -g archlinux.iso mydownload/

Ou utilisez --progress-bar drapeau :

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

Pour déplacer des répertoires avec mv commande, utilisez :

$ mv -g directory1/ directory2/

Vous pouvez également créer des alias pour enregistrer quelques frappes. Pour ce faire, modifiez ~/.bashrc fichier :

$ nano ~/.bashrc

Ajoutez les lignes suivantes à la fin :

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

Appuyez sur Ctrl+o et Ctl+x pour enregistrer et fermer le fichier.

Exécutez maintenant la commande suivante pour appliquer les modifications :

$ source ~/.bashrc

A partir de maintenant, vous pouvez simplement utiliser cp ou mv commandes sans -g (ou --progress-bar ) drapeau.

Veuillez noter que les programmes originaux ne sont pas écrasés. Vous pouvez toujours les appeler à tout moment via /usr/bin/cp ou /usr/bin/mv .

Ajout de la fonctionnalité de barre de progression à cp et mv commandes est une bonne idée si vous copiez ou déplacez souvent de nombreux fichiers et répertoires volumineux. Vous pouvez maintenant voir exactement ce qui se passe lors de la copie et du déplacement de fichiers, au lieu de regarder l'écran.

Remarque :

L'auteur original a envoyé le patch à l'équipe qui maintient GNU CoreUtils. Ils ne fusionneront pas ce patch, car mv et cp sont complets.


Linux
  1. Commandes Linux - Présentation et exemples

  2. Commandes Linux :jobs, bg et fg

  3. 20 commandes Linux en une ligne à ajouter à votre boîte à outils

  4. Commandes de redémarrage et d'arrêt de Linux

  5. Comment copier/déplacer des fichiers et des répertoires sous Linux avec les commandes "cp" et "mv"

Commandes Pushd et Popd sous Linux

Comment ajouter des commandes Linux à la file d'attente et les exécuter une par une

Comment utiliser les commandes Pbcopy et Pbpaste sous Linux

5 commandes amusantes à utiliser sous Linux et Terminal

40 Exemple pratique et productif de commandes Linux df

Commandes Zip et Unzip sous Linux/Unix