L'utilisation de -v (verbose) ralentit-elle les commandes?

29

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

L'excellente réponse de Matt inclut l'utilisation de l'option -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 l'option -v indique-t-elle "rm" et / ou en général ralentit les tâches effectuées via la ligne de commande?

J'ai un dossier avec des fichiers .txt (environ 100 000 d'entre eux) que j'ai créé, supprimé et recréé plusieurs fois pour moi. Quelques fois avec rm, quelques fois dans le navigateur de fichiers, et j'ai l'impression qu'il est encore plus lent d'utiliser la commande rm comme montré ci-dessus. Est-ce que le drapeau -v a quelque chose à voir avec cela?

    
posée Eiriks 09.10.2014 - 15:40
la source

2 réponses

33

Oui, l’indicateur -v ralentit la commande.

La plupart des logiciels (ou commandes), sinon tous, vérifient si un indicateur est fourni, puis exécutent un tas de codes liés à l'indicateur. Dans le cas de l'indicateur -v, ils exécuteraient probablement un tas de commandes de sortie (comme echo ou printf ), qu'ils auraient plutôt ignorées sans l'indicateur.

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

Il est préférable de ne pas utiliser l'option -v si vous ne voulez pas lire / avoir besoin des messages.

D'autre part, la CLI devrait / devrait être plus rapide que l'interface graphique, en supposant que vous n'incluez pas le temps requis pour taper les commandes et en appuyant sur la touche Enter .

De ce blog de superutilisateur cette image explique très bien la lenteur

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

//with -v
real    0m8.753s
user    0m0.816s
sys     0m2.036s

//without -v
real    0m1.282s
user    0m0.124s
sys     0m1.092s

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

    
réponse donnée Registered User 09.10.2014 - 15:54
la source
5

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

$ time rm -rfv dontDeleteMe && mkdir dontDeleteMe
real    0m0.003s
user    0m0.001s
sys     0m0.002s

$ time rm -rf dontDeleteMe && mkdir dontDeleteMe
real    0m0.002s
user    0m0.001s
sys     0m0.001s
    
réponse donnée sethmuss 09.10.2014 - 22:06
la source

Lire d'autres questions sur les étiquettes