Est-il possible de déterminer la progression d'une commande rm?


18

L'utilisation rm -rf LargeDirectoryde la suppression d'un répertoire volumineux peut prendre beaucoup de temps, selon la taille du répertoire.

Est-il possible d'obtenir une mise à jour de l'état ou de surveiller d'une manière ou d'une autre la progression de cette suppression pour donner une estimation approximative de la progression du processus dans la commande?


4
Essayez watch -n 5 du -s LargeDirectory. Regardez comme il va à zéro.
— Mark Plotnick

@MarkPlotnick: sur MacOS, vous devez l'installer avec brew install watch, ou voir ici pour les instructions.
— smci

Réponses:


19

de

man rm 

utilisez l'option -v:

-v, --verbose
explain what is being done

4
ce n'est pas un progrès cependant. comment «supprimer maintenant foo / bar» vous aide-t-il à déterminer dans quelle mesure la chose complète est?
— mouton volant

@flyingsheep pense qu'il supprime tout par ordre alphabétique, du moins sous OSX, donc cela aide d'une certaine manière ..
— Tim Baas

7

Je vois que la question est ancienne. Je veux partager ce que cela fonctionne pour moi, peut-être pour aider quelqu'un d'autre.

J'obtiens la barre de progression en utilisant la pvligne de commande Pipe Viewer

C'est la commande

rm -rv DIR_OR_FILE_NAME | pv -l -s $ (du -a DIR_OR_FILE_NAME | wc -l)> / dev / null

Si vous avez besoin des autorisations root pour le répertoire ou le fichier à supprimer,

sudo rm -rv DIR_OR_FILE_NAME | pv -l -s $ (sudo du -a DIR_OR_FILE_NAME | wc -l)> / dev / null
  • rm -rv: -rpour supprimer récursivement les DIR et les fichiers. -vverbeux, il répertorie tous les fichiers et répertoires supprimés.

  • pv -l -s: -lpour compter les lignes au lieu des octets. -sdéfinissez le nombre total de lignes à supprimer.

  • $( du -a <dir_or_file> | wc -l ): du -arenvoie une liste de tous les fichiers et répertoires du répertoire spécifié. wc -lrenvoie le nombre de lignes générées par du -a.

  • > /dev/null: envoyer la sortie de rm -rvnulle part.


Bonne idée. Cela peut donner un nombre de fichiers / répertoires incorrect si des noms contiennent des retours à la ligne; find {dir} -printf . | wc -cserait plus sûr (mais -printfc'est une extension GNU).
— Scott

C'est en fait ce que je cherchais, merci. D'autres commentaires ont laissé quelque chose de manquant.
— Hellreaver

3

Vous pouvez afficher la progression de toutes les commandes en cours d'exécution avec Coreutils Progress Viewer ( cv). Ce n'est pas comme émettre une seule commande, mais vous pouvez voir la progression de celle-ci.

exemple de CV utilisé

Je suis sûr que quelqu'un peut trouver un alias pour exécuter cela avec la commande. Il fonctionne également avec cp, mv, dd, tar, gzip/gunzip, cat, etc.. Plus de détails à ce sujet peuvent être trouvés sur

gitthub Xfennec / progress


2
Puisque progress (comme "cv" est maintenant connu) suit les fichiers ouverts et que rm n'ouvre pas les fichiers qu'il supprime, cela peut ne pas être très utile.
— dhag

2
@dhag Votre droit, je pensais que cela fonctionnerait pour rm. Maintenant, je suis en train de débattre de l'opportunité de supprimer la réponse. hmm
— Ashitakalax
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.