Saya memiliki direktori web tempat saya menyimpan beberapa file konfigurasi. Saya ingin menggunakan wget untuk menarik file-file itu ke bawah dan mempertahankan struktur mereka saat ini. Misalnya, direktori jarak jauh terlihat seperti:
http://mysite.com/configs/.vim/
.vim menampung banyak file dan direktori. Saya ingin meniru itu pada klien menggunakan wget. Tampaknya tidak dapat menemukan kombo yang tepat dari bendera wget untuk menyelesaikan ini. Ada ide?
Untuk mengunduh direktori secara rekursif, yang menolak file index.html * dan unduhan tanpa nama host, direktori induk dan seluruh struktur direktori:
sumber
Untuk siapa pun yang memiliki masalah serupa. Wget mengikuti
robots.txt
yang mungkin tidak memungkinkan Anda untuk mengambil situs tersebut. Jangan khawatir, Anda dapat mematikannya:http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
sumber
Anda harus menggunakan flag -m (mirror), karena berhati-hati untuk tidak mengacaukan stempel waktu dan untuk berulang tanpa batas.
Jika Anda menambahkan poin yang disebutkan oleh orang lain di utas ini, itu akan menjadi:
sumber
Inilah perintah lengkap wget yang berfungsi untuk saya mengunduh file dari direktori server (mengabaikan
robots.txt
):sumber
Jika
--no-parent
tidak membantu, Anda dapat menggunakan--include
opsi.Struct direktori:
Dan Anda ingin mengunduh
downloads/good
tetapi bukandownloads/bad
direktori:sumber
bekerja untukku.
Mungkin Anda memiliki .wgetrc yang mengganggu itu?
sumber
Untuk mengambil direktori secara rekursif dengan nama pengguna dan kata sandi, gunakan perintah berikut:
sumber
Wget 1,18 dapat bekerja lebih baik, misalnya, saya digigit oleh bug versi 1,12 di mana ...
... hanya mengambil index.html alih-alih semua file.
Penanganannya adalah untuk melihat beberapa pengalihan 301 dan mencoba lokasi baru - diberi URL baru, wget mendapat semua file di direktori.
sumber
Yang Anda butuhkan adalah dua bendera, satu
"-r"
untuk rekursi dan"--no-parent"
(atau-np
) agar tidak masuk'.'
dan".."
. Seperti ini:wget -r --no-parent http://example.com/configs/.vim/
Itu dia. Ini akan men-download ke dalam pohon lokal berikut:
./example.com/configs/.vim
. Namun jika Anda tidak menginginkan dua direktori pertama, gunakan flag tambahan--cut-dirs=2
seperti yang disarankan dalam balasan sebelumnya:wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
Dan itu akan mengunduh pohon file Anda hanya ke
./.vim/
Sebenarnya, saya mendapat baris pertama dari jawaban ini tepatnya dari manual wget , mereka memiliki contoh yang sangat bersih menjelang akhir bagian 4.3.
sumber
Opsi berikut tampaknya menjadi kombinasi yang sempurna ketika berhadapan dengan unduhan berulang:
wget -dan -np -P / dest / dir --recursive http: // url / dir1 / dir2
Cuplikan yang relevan dari halaman manual untuk kenyamanan:
sumber
Anda harus dapat melakukannya hanya dengan menambahkan -r
sumber
Versi ini mengunduh secara rekursif dan tidak membuat direktori induk.
Pemakaian:
~/.bashrc
atau rekatkan ke terminalwgetod "http://example.com/x/"
sumber