Unduh file dan buat struktur file yang sama dengan sumbernya

21

Saya memiliki file konfigurasi yang terdiri dari daftar URI yang ingin saya unduh. Sebagai contoh,

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

Saya ingin membaca file konfigurasi dan menyalin setiap URL tetapi pada saat yang sama membuat struktur direktori yang sama seperti pada host. Sebagai contoh, untuk baris pertama dalam file konfigurasi, saya ingin membuat struktur direktori Dir1 / Dir3 pada mesin lokal saya (jika tidak ada) dan kemudian salin sds.exe ke ... / Dir1 / Dir3 /

Saya menemukan bahwa saya dapat mengunduh semua URL dalam file menggunakan 'wget -i' tetapi bagaimana saya bisa membuat struktur direktori yang sesuai dengan itu

NGambit
sumber

Jawaban:

27

Dari man wget:

-x, - force-directories:

[...]

buat hierarki direktori, meskipun tidak ada yang dibuat sebaliknya. Misalnya wget -x http://fly.srk.fer.hr/robots.txt akan menyimpan file yang diunduh ke fly.srk.fer.hr/robots.txt.

Chris Down
sumber
Terima kasih atas rekomendasi pria tersebut. Saya harus terbiasa membantu diri sendiri.
NGambit
Chris: Tapi sepertinya jika saya punya fly.srk.fer.hr/dir1/robots.txt maka wget -x membuat direktori fly.srk.fer.hr dan meletakkan file bernama dir1 / robots.txt di dalamnya. Apa yang saya butuhkan itu membuat bahkan subdirektori. yaitu menyimpan robots.txt untuk terbang.srk.fer.hr/dir1/
NGambit
@NGambit Tidak mungkin membuat file tunggal bernama dir1/robots.txtUnix.
Chris Down
Kamu benar. File konfigurasi yang saya gunakan memiliki '\' bukan '/' (karena diuraikan dari file berbasis windows lain) di jalur direktori yang mengacaukan semuanya. Baru saja mengganti '\' dengan '/' dan "wget ​​-x -i filename" berfungsi seperti pesona
NGambit
2
Catatan tambahan: kadang-kadang Anda ingin melewati folder N pertama di URL, lalu Anda menambahkan:--cut-dirs=N
tokland
16

Untuk mendapatkan struktur yang Anda minta, saya sarankan menggunakan -nH dan -x.

Ini akan menghapus nama host dan juga membuat struktur direktori yang diharapkan.

misalnya

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

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

Dari halaman manual:

-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...
Joe
sumber