40 votes

Est-ce que l'utilisation de -v (verbose) ralentit les commandes?

Dans cette question: Comment supprimer tous les fichiers et sous-répertoires d'un répertoire SANS supprimer le répertoire en bash ? /a>, il est demandé comment supprimer tous les fichiers d'un dossier, sans supprimer le dossier lui-même.

La réponse excellente de Matt inclut l'utilisation du drapeau -v pour la commande 'rm'.

rm -rfv dontDeleteMe && mkdir dontDeleteMe

La commande que j'ai laissée était celle ci-dessus. Certainement utile en effet, mais le drapeau -v dans 'rm' ralentit-il les tâches effectuées en ligne de commande en général ?

J'ai un dossier avec des fichiers .txt (environ 100 000) que j'ai créés, supprimés et recréés plusieurs fois maintenant. Parfois avec rm, parfois dans le navigateur de fichiers, et j'ai l'impression que c'est même plus lent d'utiliser la commande rm comme indiqué ci-dessus. Le drapeau -v a-t-il quelque chose à voir avec cela ?

44voto

Registered User Points 9233

Oui, le drapeau -v ralentit la commande.

La plupart, sinon tous les logiciels (ou commandes) vérifieraient si un drapeau est fourni, puis exécuteraient un tas de code lié au drapeau. En cas du drapeau -v, ils exécuteraient probablement un tas de commandes de sortie (comme echo ou printf), qu'ils auraient plutôt sauté sans le drapeau.

Cela signifie plus de cycles d'instructions pour le processeur et donc plus de temps d'exécution.

Il est préférable de ne pas utiliser le drapeau -v si vous n'allez pas lire/avez besoin des messages.

D'autre part, l'interface en ligne de commande serait/devrait être plus rapide que l'interface graphique, en supposant que vous n'incluez pas le temps nécessaire pour taper les commandes et appuyer sur la touche Entrée.

Sur ce blog de superuser cette image explique très bien la lenteur

Entrer la description de l'image ici

Pour la commande spécifique en question, les résultats de la commande time sont

//avec -v
réel    0m8,753s
utilisateur    0m0,816s
système     0m2,036s

//sans -v
réel    0m1,282s
utilisateur    0m0,124s
système     0m1,092s

cela a été fait avec le répertoire contenant 100000 fichiers vides

5voto

DaMan05 Points 21

Pourquoi ne pas le découvrir vous-même: utilisez le temps.

$ time rm -rfv dontDeleteMe && mkdir dontDeleteMe
réel    0m0.003s
utilisateur    0m0.001s
système     0m0.002s

$ time rm -rf dontDeleteMe && mkdir dontDeleteMe
réel    0m0.002s
utilisateur    0m0.001s
système     0m0.001s

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X