Завантажте файли та створіть таку саму структуру файлу, що і джерело


21

У мене є файл конфігурації, який складається зі списку URI, які я хочу завантажити. Наприклад,

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

Я хочу прочитати конфігураційний файл і скопіювати кожну URL-адресу, але в той же час створити ту саму структуру каталогів, що і на хості. Наприклад, для першого рядка в конфігураційному файлі я хочу створити структуру каталогу Dir1 / Dir3 на своїй локальній машині (якщо її немає), а потім скопіювати sds.exe в ... / Dir1 / Dir3 /

Я виявив, що я можу завантажити всі URL-адреси у файл, використовуючи 'wget -i', але як я можу створити відповідну структуру каталогу за допомогою цього

Відповіді:


27

Від man wget:

-x, --force-каталоги:

[...]

створити ієрархію каталогів, навіть якщо один із них не був би створений. Наприклад wget -x http://fly.srk.fer.hr/robots.txt збереже завантажений файл fly.srk.fer.hr/robots.txt.


Дякую за рекомендацію чоловіка. Я повинен звикнути допомагати собі.
NGambit

Кріс: Але здається, якщо у мене є fly.srk.fer.hr/dir1/robots.txt, то wget -x створює каталог fly.srk.fer.hr і поміщає в нього файл з назвою dir1 / robots.txt. Що мені потрібно, щоб він створював навіть підкаталоги. тобто збережіть robots.txt на fly.srk.fer.hr/dir1/
NGambit

@NGambit Неможливо створити єдиний файл, названий dir1/robots.txtна Unix.
Кріс Даун

Ти правий. Конфігураційний файл, який я використовував, мав '\' замість '/' (оскільки він був проаналізований з іншого файлу, заснованого на Windows) у доріжках до каталогу, який псував речі. Тільки що замінив "\" на "/" і "wget ​​-x -i ім'я файлу" працює як шарм
NGambit

2
Побічна примітка: іноді ви хочете пропустити перші N папок у URL, тоді ви додасте:--cut-dirs=N
tokland

16

Щоб отримати структуру, яку ви просите, я б запропонував використовувати -nH, а також -x.

Це видалить ім'я хоста, а також створить очікувану структуру каталогу.

напр

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

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

На чоловіковій сторінці:

-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...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.