web-dev-qa-db-fra.com

wget -O pour un chemin de sauvegarde inexistant?

Je ne peux pas wget alors qu'il n'y a pas encore de chemin à enregistrer. Je veux dire, wget ne fonctionne pas pour les chemins de sauvegarde inexistants. Par exemple:

wget -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg

Si /path/to/image/ n'existe pas auparavant, il renvoie toujours:

No such file or directory

Comment puis-je le faire fonctionner pour créer automatiquement le chemin et enregistrer?

31
夏期劇場

Essayez curl

curl http://www.site.org/image.jpg --create-dirs -o /path/to/save/images.jpg
53
kev
mkdir -p /path/i/want && wget -O /path/i/want/image.jpg http://www.com/image.jpg
5
Ash

wget obtient uniquement un fichier ne créant PAS la structure de répertoires pour vous (mkdir -p/chemin/vers/image /), vous devez le faire par vous-même:

mkdir -p /path/to/image/ && wget -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg

Vous pouvez dire à wget de créer le répertoire (pour que vous n'ayez pas à utiliser mkdir) avec le paramètre --force-directories

tout cela serait

wget --force-directories -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg
3
K1773R

Après avoir beaucoup cherché, j'ai finalement trouvé n moyen d'utiliser wget pour télécharger pour un chemin inexistant.

wget -q --show-progress -c -nc -r -nH -i "$1"

=====
Clarification

-q
--quiet --show-progress
  Kill annoying output but keep the progress-bar

-c
--continue
  Resume download if the connection lost

-nc
--no-clobber
  Overwriting file if exists

-r
--recursive
  Download in recursive mode (What topic creator asked for!)

-nH
--no-Host-directories
  Tell wget do not use the domain as a directory (for e.g: https://example.com/what/you/need
   - without this option, it will download to "example.com/what/you/need")

-i
--input-file
  File with URLs need to be download (in case you want to download a lot of URLs,
   otherwise just remove this option)

Bon wget-ing!

0
Toan Nguyen