Comment spécifier l'emplacement avec wget?


Réponses:


955

Depuis la page de manuel:

-P prefix
--directory-prefix=prefix
           Set directory prefix to prefix.  The directory prefix is the
           directory where all other files and sub-directories will be
           saved to, i.e. the top of the retrieval tree.  The default
           is . (the current directory).

Vous devez donc ajouter -P /tmp/cron_test/(forme courte) ou --directory-prefix=/tmp/cron_test/(forme longue) à votre commande. Notez également que si le répertoire n'existe pas, il sera créé.


5
-P / tmp / cron_test / ne fonctionne pas mais la suppression de / comme -P tmp / cron_test / fonctionne et crée même un répertoire inexistant.
Kangarooo

7
Kangourou, cela ne fonctionne probablement pas parce que vous n'avez pas / tmp / cron_test / sur votre système: P
Sameer Alibhai

41
La description du manuel rend cette option difficile à rechercher. Je ne pense pas à l'emplacement où je veux enregistrer quelque chose en tant que «préfixe de répertoire». Merci d'avoir partagé!
Iain Samuel McLean Elder

7
En outre, vous pouvez supprimer le dossier racine via --no-host-directoriesou -nHselon serverfault.com/questions/354792/…
Alien Life Form

-P est ignoré si vous utilisez un fichier d'entrée avec -i des idées?
Jan Viehweger

410

-O est l'option permettant de spécifier le chemin d'accès du fichier vers lequel vous souhaitez télécharger.

wget <file.ext> -O /path/to/folder/file.ext

-P est le préfixe où il va télécharger le fichier dans le répertoire

wget <file.ext> -P /path/to/folder

8
Je rajouterais un slash pour le rendre /path/to/folder/
Louis Maddox

36
Up a voté pour préciser également -Oce dont je n'avais pas besoin, mais m'a fait sentir plus confiant que -Pc'était ce dont j'avais besoin.
WORMSS

@louisMaddox selon les pages de manuel de ma machine, le préfixe par défaut est "." (c.-à-d. le répertoire actuel) l'ajout d'une barre oblique de fin au "préfixe de répertoire" entraînerait une erreur de double barre oblique (c.-à-d., mon / favorite / dir / préfixe //). sabrer.
Timothy LJ Stewart

2
@ TimothyL.J.Stewart Il n'y a pas d'erreur de double barre oblique.
har-wradim

NB: -Oremplace -P, donc vous ne pouvez pas spécifier uniquement le répertoire de sortie (pensez dirname et juste le nom du fichier de sortie (pensez basename). Pour cette utilisation, -Ospécifiez simplement le chemin d'accès complet au fichier.
murlakatamenka

7

Assurez-vous que l'URL est correcte pour tout ce que vous téléchargez. Tout d'abord, les URL avec des caractères comme? et tels ne peuvent pas être analysées et résolues. Cela confondra la ligne cmd et acceptera tous les caractères qui ne sont pas résolus dans le nom de l'URL source comme nom de fichier dans lequel vous téléchargez.

Par exemple:

wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"

va télécharger dans un fichier nommé, ?source=typ_redirect .

Comme vous pouvez le voir, connaître une ou deux choses sur les URL aide à comprendre wget .

Je démarre à partir d'un disque hirens et je n'avais que Linux 2.6.1 comme ressource (le système d'exploitation d'importation n'est pas disponible). La syntaxe correcte qui a résolu mon problème de téléchargement d'une image ISO sur le disque dur physique était:

wget "(source url)" -O (directory where HD was mounted)/isofile.iso" 

On pourrait trouver l'URL correcte en trouvant à quel moment les wgettéléchargements dans un fichier nommé index.html(le fichier par défaut), et a la taille correcte / d'autres attributs du fichier dont vous avez besoin, indiqués par la commande suivante:

wget "(source url)"

Une fois que l'URL et le fichier source sont corrects et qu'ils sont téléchargés dans index.html, vous pouvez arrêter le téléchargement ( ctrl+ z) et modifier le fichier de sortie en utilisant:

-O "<specified download directory>/filename.extension"

après l'URL source.

Dans mon cas, cela se traduit par le téléchargement d'une image ISO et son stockage sous forme de fichier binaire sous isofile.iso, qui, espérons-le, se monte.


2

"-P" est la bonne option, veuillez lire la suite pour plus d'informations connexes:

wget -nd -np -P / dest / dir - récursif http: // url / dir1 / dir2

Extraits pertinents des pages de manuel pour plus de commodité:

   -P prefix
   --directory-prefix=prefix
       Set directory prefix to prefix.  The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree.  The default is . (the current directory).

   -nd
   --no-directories
       Do not create a hierarchy of directories when retrieving recursively.  With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
       filenames will get extensions .n).


   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

1

man wget: -O fichier --output-document = fichier

wget "url" -O /tmp/cron_test/<file>

1
Ce n'est pas une réponse, car l'option -o met le fichier téléchargé dans le fichier spécifié. Mais la question est "Comment mettre le fichier dans un dossier". Et ceci est un doublon existe réponse
Anton Gorbunov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.