Effacer les répertoires dont la taille dépasse 20M
FREDD77000
Messages postés
2
Statut
Membre
-
Arm.7.ageddon Messages postés 42 Statut Membre -
Arm.7.ageddon Messages postés 42 Statut Membre -
Bonjour
Dans mon répertoire profiles, j'ai plusieurs répertoires (qui contiennent eux mêmes des répertoires et des fichiers) dont la taille dépasse 20Mo
Je voudrais pouvoir effacer tous les répertoires de premier niveau (avec leur contenu) dont la taille dépasse 20Mo.
J'ai essayé avec la commande find mais je bloque.
Cordialement
Frédéric
Dans mon répertoire profiles, j'ai plusieurs répertoires (qui contiennent eux mêmes des répertoires et des fichiers) dont la taille dépasse 20Mo
Je voudrais pouvoir effacer tous les répertoires de premier niveau (avec leur contenu) dont la taille dépasse 20Mo.
J'ai essayé avec la commande find mais je bloque.
Cordialement
Frédéric
2 réponses
-
Salut,
Certes la commandefind
via l'option-size +n
peut faire une recherche basée sur la taille, mais cela ne concerne que sur les fichiers mais pas sur les répertoires ;-\
Par contre la commandedu -s
fait ça très bien. Couplée àawk
par exemple, elle peut t'afficher les dossiers du répertoire courant supérieur à 20 Mo :
du -s * | awk '$1 > 20000 { print $2 }'
Il ne reste plus qu'à passer ça àxargs
pour les supprimer viarm
;-)
-
Attention du -s * liste aussi les fichiers, et le séparateur entre la taille et le nom est une tabulation, pas un espace.
En plus il peut arriver qu'il y ait un alias sur du (du -h), qui fera que ça ne fonctionnera pas du tout, ou pire, aléatoirement !
Du coup :find ~ -maxdepth 1 -type d -exec du -b -s {} \; | awk 'BEGIN {FS="\t"} { if ($1 > 20000000) {print $2}}' | xargs -0 -I {} echo suppression de {}
affichera la liste des répertoires de premier niveau dont la taille du contenu (y compris les rép. et s/s rép.) dépasse les 20.000.000 d'octets.
Pour la suppression proprement dites, il faudra remplacer "echo suppression de" par "rm -rf", mais attention au grand ménage automatique, parfois, c'est (trop) violent ! :)
-
-
Bonjour
Je vous remercie pour vos réponses.
J 'ai essayé hier la solution de zipe31. Cela fonctionne impeccable.
Je vais aussi étudier la seconde solution fournie.
Merci encore pour votre aide
Frédéric