Décompresser des archives dans des dossiers multiples sous Linux

Dans la série des petits problèmes du quotidien qui peuvent prendre des heures ou quelques minutes : en voici un nouveau. Le problème est le suivant : j’ai un dossier qui contient 544 sous-dossiers. Chacun de ces sous dossiers contient un certain nombre d’archives .zip. Ce que je veux est assez simple : obtenir au final mes 544 dossiers avec ce que contenaient les fichiers .zip. Accessoirement, je veux que les fichiers .zip dégagent.

Faire ça à la main ? Je dirais (à vue de nez) : 4h de boulot rébarbatif. Non, profitons de la plateforme Linux Unix et de Bash. L’idée est simple : on liste tout les fichiers .zip de l’arborescence (pour ce faire, on utilise find) ensuite, on les dézipe (via unzip) et précisant que le chemin de destination est le même que celui de l’archive (via l’option -d le_dossier). Et hop le tour est joué ! Un petit rm –rf */*.zip pour virer les archives devenue superflues et c’est fini. Au final, voilà ce que ça donne :

#!/bin/sh
for j in ` find . -name *.zip`
do
          echo "Dezip de $j"
          unzip $j -d `dirname "$j"`
done
rm –rf */*.zip

Bilan de l’opération : 15 minutes pour faire le script (rédaction du billet comprise) et 6 minutes d’exécution (la machine souffrait déjà en terme de charge) pour traiter 544 dossiers et 1503 fichiers .zip pour une taille totale de 2.4Go.

2 réactions à l'heure actuelle »

  1. MiniPomme a écrit

    le 25 août 2008 à 11:49

    Non, profitons de la plateforme Linux et de Bash.

    J’aurais écris : Non, profitons de la plateforme Unix et de Bash.
    Toi qui fais de la pomme…

    Au passage, il y a une application sur les Mac qui permet d’éviter toutes ces choses rébarbatives sans aucunes connaissance de code… Automator… Il permet de créer dans une interface conviviale (glisser déposer d’action) des scripts/mini application qui simplifie la vie de tous les jours…

  2. Julien Quéré a écrit

    le 25 août 2008 à 12:03

    Effectivement, « Unix » est plus approprié (shame on me :/) … Je regarderais Automator dès que j’aurais un créneau de libre sur le Mac Mini :D

Fil RSS des commentaires · URI de trackbacks (modérés ...)

Laisser un commentaire

Un nom (requis)

Un mail (requis)

Peut être une URL ?

Réaction: