Tips & tricks

Tips & tricks supprimer les fichiers les plus gros d'un répertoire /// for i in `du -a /media/data | sort -n -r | head -n 20 | cut -d'/' -f2-`; do if [ ! -d /$i ]; then ls -l /$i;rm -i /$i; fi; done /// Suite au commentaire de lone wolf voici une commande beaucoup plus élégante /// find ./ -maxdepth 1 -type f -printf "%b\t%p\n" \ | sort -n -r | head -n 20 | cut -f 2 | xargs rm -v ///

Commentaires

1. Le lundi, 15 décembre 2008, 06:58 par Lone Wolf

Salut,

juste pour mettre mon grain de sel et pour dire que TIMTOWTDI, voici une solution un peu plus courte à base de find:

 find ./ -maxdepth 1 -type f -printf "%b\t%p\n" \
      | sort -n -r | head -n 20 | cut -f 2 | xargs rm -v

J'utilise find pour trouver tous les fichiers du dossier, et en afficher le nom et la tail, puis ensuite,comme toi, j'utilise sort, head, et cut pour récupérer les 20 plus gros fichiers, et enfin, plutôt qu'une boucle for, j'utilise xargs pour passer les fichiers à rm.

voila :) comme quoi, il n'y avait pas besoin de sortir les boucles et les if pour faire cette petite chose.

2. Le mardi, 23 décembre 2008, 19:49 par flo|va-nu-pied

Vraiment sympa cette commande... Beaucoup plus propre que lamienne, merci pour l'info. Bon je dois avouer que ça me viens beaucoup moins naturellement pour le moment. J'utilise encore ocasionnelement xargs et pour ainsi dire jamais les options print, mais il faut vraiment que je les intègre.

Bah tiens je vais editer mon billet pour la peine.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : http://blog.tools-fm.com/index.php?trackback/37

Fil des commentaires de ce billet