Jérémy Le Piolet - Blog

Récupérer de multiples fichiers distants

Cet article a été écrit il y a plus d'un an : son contenu peut être dépassé.

Il arrive parfois que l’on souhaite récupérer un nombre assez important de fichiers distants et que, manque de bol, il n’y a rien de prévu pour tous les télécharger d’un coup. Dans votre malheur, un espoir : tous les fichiers sont numérotés, à peu près dans l’ordre.

Sous Linux, il est tout à fait possible de le faire en une seule ligne de commande, sans aller chercher trop loin dans le scripting grâce à wget.

wget http://monsupersite.fr/fichier{0..200}.png

Cette commande va aller récupérer sur monsupersite.fr tous les fichiers tels que les noms sont compris entre fichier0.png et fichier200.png (et donc récupérer aussi fichier1.png, fichier2.png, etc.) et les enregistrer dans le répertoire courant.

S’il y a des trous dans la numérotation, pas de soucis : le serveur retournera une 404 mais la commande continuera. Cela fonctionne aussi avec les caractères : si les fichiers sont de la forme fichier_a, fichier_b, etc., le joker devient fichier{a..z}_.

Bien entendu, ça ne fonctionne que si les éléments sont en accès http/https direct, que l’on a wget sous Linux et que les fichiers suivent une logique de numérotation. Sinon, vous êtes bons pour faire des scripts plus poussés.

Le man de wget en français : http://www.delafond.org/traducmanfr/man/man1/wget.1.html