Мені потрібні файли для завантаження в / 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
за посиланням defaultfault.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
.
Я завантажуюся з диска найму і в якості ресурсу мав тільки Linux 2.6.1 (імпорт ОС недоступний). Правильний синтаксис, який вирішив мою проблему із завантаженням 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"
після URL-адреси джерела.
У моєму випадку це призводить до завантаження 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 файл --output-document = файл
wget "url" -O /tmp/cron_test/<file>