Archives par étiquette : shell

Accélérer find -exec

Avez-vous déjà fait une commande similaire à celle-ci?

find -type f -mtime +7 -exec rm -f {} \;

L’avez-vous déjà effectuée sur plus de cent mille fichiers?  Et sur des millions?  Est-ce que la commande roulait pendant des minutes, voir des heures?  C’est normal puisque la commande find fait un « fork » sur la commande rm à chaque fichier, ce qui peut devenir très long lorsqu’il y a des tonnes de fichiers.

Pour accélérer le tout, et lorsque je dis accélérer, je parle de 5 fois plus vite, desfois encore plus selon les composantes de votre système.  Vous pouvez transformer cette commande facilement comme suit :

find -type f -mtime +7 | xargs rm

La raison pour laquelle cette commande est plus rapide est simplement qu’elle exécutera seulement une fois la commande rm avec tous les noms de fichiers en paramètre plutôt que cent mille fois 1 fichier.

J’espère que ceci pourra vous aider à accélérer votre travail ou vos scripts!