web-dev-qa-db-fra.com

Téléchargez des fichiers et créez la même structure de fichier que la source

J'ai un fichier de configuration qui consiste en une liste d'URI que je veux télécharger. Par exemple,

  http://xyz.abc.com/Dir1/Dir3/sds.exe
  http://xyz.abc.com/Dir2/Dir4/jhjs.exe
  http://xyz.abc.com/Dir1/itr.exe

Je souhaite lire le fichier de configuration et et copier chaque URL, mais en même temps, créez la même structure de répertoire que sur l'hôte. Par exemple, pour la première ligne du fichier de configuration, je souhaite créer la structure de répertoire Dir1/Dir3 sur ma machine locale (si elle n'existe pas), puis copiez SDS.exe sur .../dir1/dir3 /

J'ai trouvé que je peux télécharger toutes les URL dans un fichier à l'aide de 'wget -i' mais comment puis-je créer la structure de répertoire correspondante avec celle-ci

24
NGambit

De man wget:

-x, --Force-Annuaire:

[...]

créez une hiérarchie de répertoires, même si on n'aurait pas été créé autrement. Par exemple. wget -x http://fly.srk.fer.hr/robots.txt Enregistrez le fichier téléchargé sur fly.srk.fer.hr/robots.txt.

30
Chris Down

Pour obtenir la structure que vous demandez, je suggérerais d'utiliser -nh aussi bien que -x.

Cela supprimera le nom d'hôte et créera la structure annuaire attendue.

par exemple.

wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe

- 'Dir1/Dir3/sds.exe' saved [1234]

De la page man:

-nH
--no-Host-directories
   Disable generation of Host-prefixed directories.  By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/.  This option disables such behavior.

-x
--force-directories
   ...create a hierarchy of directories, even if one would not have been created otherwise...
18
Joe