Compresser les plus gros fichiers d'une liste

Résolu/Fermé
rvivet - 11 avril 2009 à 23:45
 rvivet - 13 avril 2009 à 23:56
Bonjour,

Afin de réduire l'espace mémoire utilisé de mon disque dur, je cherche à compresser des fichiers dans un répertoire qui contient +/- 20000 fichiers (tous de tailles très variables). Bien entendu, je souhaite ne compresser que les plus importants (en taille) car il y a une multitude de petits fichiers dont la compression ne servirait à rien (et l'opération prendrai beaucoup de temps...)
J'ai essayé sans succés d'allier les commandes "bzip2" et "ls -S" avec les commandes de redirections (<, >, |).
Mon idée était de rediriger une liste pas ordre décroissant de la taille des fichiers(ls -rS) vers l'entrée de "bzip2" et de stopper le process au bout de quelques heures (ctrl Z), ainsi les plus gros fichiers aurez été compressés.

Il n'y a pas de possibilité de selection par leur nom ou extention (bzip2 *xxx) car tous ces fichiers n'ont pas de caracteristiques en rapport avec leur taille.

Une solution à ce problème me serait d'un grand recours,

Merci
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
12 avril 2009 à 09:37
Salut,

Avec la commande "find" et l'option "-size" tu devrais arriver à tes fins...

man find pour plus de détails...
0
c'était effectivement avec find que je suis arrivé à bout de mon pb.

find -size +300000000c |xargs bzip2 (pour ne compresser que ceux excédant 300G)

Merci pour ton aide
0