Hier, j’exposais mon problème (et sa solution) d’archives en pagaille : « 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. »
Aujourd’hui, j’ai exactement le même problème sauf que c’est avec des fichiers .rar qui peuvent eux même contenir des fichiers .rar. Je veux toujours que les fichiers .rar originaux dégagent. Comme je ne connais pas l’option pour choisir le chemin de destination de décompression pour la commande rar (et comme j’avais pas le temps de chercher), j’ai fait autrement. On rentre dans le dossier, on extrait l’archive, on supprime tout ce qui s’appelle nomDeLArchive.r* (car une archive rar peut être sur plusieurs fichiers du genre rO1, r02, …) et on retourne à la racine. Bref, voilà ce que cela donne :
#!/bin/sh for j in ` find . -name *.rar` do cd `dirname "$j"` rar e `basename "$j"` -o+ fname=`basename "$j"` rm -rf ${fname%.*}.r* cd .. done |
Au final, 1532 fichiers traités en 5 minutes.

Pour la compression (de tous les pdf d’un dossier) :
:~ $ cd /ton/dossier
:dossier $ find . -name '*.pdf' -exec zip ./{}.zip {} \;
le -exec serais pas mieux dans ton code ?
Effectivement, c’est beaucoup plus simple (et efficace) comme ça ! Merci du tips