Мне нужны файлы для загрузки в / tmp / cron_test /. Мой код wget
wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/
Так есть ли какой-то параметр для указания каталога?
Мне нужны файлы для загрузки в / tmp / cron_test /. Мой код wget
wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/
Так есть ли какой-то параметр для указания каталога?
Ответы:
Со страницы руководства:
-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).
Поэтому вам нужно добавить -P /tmp/cron_test/
(краткую форму) или --directory-prefix=/tmp/cron_test/
(длинную форму) к вашей команде. Также обратите внимание, что если каталог не существует, он будет создан.
--no-host-directories
или -nH
в соответствии с serverfault.com/questions/354792/…
-O - это опция для указания пути к файлу, который вы хотите загрузить.
wget <file.ext> -O /path/to/folder/file.ext
-P это префикс, куда он будет загружать файл в каталог
wget <file.ext> -P /path/to/folder
/path/to/folder/
там
-O
что мне не нужно, но заставило меня чувствовать себя более уверенно, это -P
было то, что мне было нужно.
-O
переопределяет -P
, поэтому вы не можете указать только выходной каталог (думать dirname
и просто выводить имя файла (думать basename
). Для этого используйте просто -O
указание полного пути к файлу.
Убедитесь, что у вас правильный URL-адрес для всего, что вы загружаете. Прежде всего, URL с такими символами, как?
и такие, не могут быть проанализированы и разрешены. Это запутает строку cmd и примет любые символы, которые не разрешены в исходном URL-имени, в качестве имени файла, в который вы загружаете.
Например:
wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"
загрузит в файл с именем, ?source=typ_redirect
.
Как видите, знание кое-чего об URL помогает понять wget
.
Я загружаюсь с диска hirens, и в качестве ресурса использовалась только Linux 2.6.1 (import os недоступен). Правильный синтаксис, который решил мою проблему с загрузкой ISO на физический жесткий диск:
wget "(source url)" -O (directory where HD was mounted)/isofile.iso"
Можно определить правильный URL-адрес, найдя в какой момент wget
файл загружается в файл с именем index.html
( файл по умолчанию) и имеет правильный размер / другие атрибуты файла, который вам нужен, показанный следующей командой:
wget "(source url)"
Когда этот URL и исходный файл верны и они загружаются в index.html
, вы можете остановить загрузку ( ctrl+ z) и изменить выходной файл, используя:
-O "<specified download directory>/filename.extension"
после ссылки на источник
В моем случае это приводит к загрузке ISO и сохранению его в виде двоичного файла isofile.iso
, который, как мы надеемся, монтируется.
«-P» - правильный вариант, пожалуйста, ознакомьтесь с дополнительной информацией:
wget -nd -np -P / dest / dir - рекурсивный http: // url / dir1 / dir2
Соответствующие фрагменты с man-страниц для удобства:
-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.
man wget: -O file --output-document = file
wget "url" -O /tmp/cron_test/<file>