© Tito
Trouvez et Zippez vos gros fichiers pour gagner de la place
Petite astuce : utilisez find et zip en ligne de commande pour trouver et zipper vos gros fichiers, récursivement et de façon indépendante.
Imaginons (c'est impossible mais imaginons) qu'un dossier de travail contienne toute une arborescence de milliers sous dossiers et fichiers qui s'accumulent depuis des années et vous voulez maintenant trouver les gros fichiers encombrants et éventuellement obsolètes, pour les zipper sur place (pas question de les déplacer pour faire un seul zip, chaque fichier doit rester là où il est mais être zippé pour gagner de la place).
Ouvrez un xterm ou tout autre interprêteur de commande type shell.
Placez vous dans le dossier qui contient vos documents (ou typiquement le lecteur réseau qui est partagé par vos utilisateurs sur windows et sur lequel se trouvent leurs documents de travail ) :
cd /travail
Le plus dur est fait.
Pour trouver les gros fichiers (par ex plus de 30Mo) de ce dossier et des sous-dossiers (récursivement) :
find . -size +30000k
(Note : +30000k peut s'écrire +30M sur des versions récentes de find).
Pour afficher les tailles de ces fichiers et trier la liste du plus petit au plus gros :
find . -size +30000k -exec ls -sh "{}" ; |sort -n
Et donc maintenant pour zipper automatiquement sur place ces mêmes fichiers :find . -size +30000k -exec zip -mj "{}".zip "{}" ;
Note : l'option "-exec" indique à find d'executer la commande qui suit pour chaque fichier correspondant et de remplacer dans cette commande les "{}" par le nom complet du fichier en question.
Soit par ex pour le fichier de 50Mo "projet/truc/toto.pdf" , find executera "zip -mp projet/truc/toto.pdf.zip projet/truc/toto".
L'option -m indique à zip de faire un "move", cad de ne pas garder le fichier source non zippé et l'option -j pour "junk" lui indique de ne pas garder le chemin complet dans l'archive : donc dans projet/truc/ on transforme purement et simplement toto.pdf en son équivalent zippé toto.pdf.zip.
Astuce : pour zipper uniquement les fichiers .doc par exemple :
find . -size +30000k -iname "*.doc" -exec zip -mj "{}".zip "{}" ;
et de plus de 60 jours :
find . -size +30000k -iname "*.doc" -ctime +60 -exec zip -mj "{}".zip "{}" ;
Pour d'autres filtres et toute question du genre elle fait quoi la commande ? :
man find
Note : pour monter sur linux un partage d'un serveur windows :
mount -t cifs //server/partage -o username=moi,password=xxx,domain=mondom
4 204 clics - Créé le 18/12/2008 par Tito - Modifié le 02/01/2009