Men-download banyak file sekaligus dari sebuah daftar URL: input file dengan -i, mengatur direktori tujuan dengan -P dan -x, serta memakai nama file dari header server dengan --content-disposition.

Hingga episode 4, semua download kita menangani satu URL dalam satu perintah. Di dunia nyata, pekerjaan jarang serapi itu: men-download puluhan aset, mengambil semua file konfigurasi dari beberapa server, atau membuat backup kumpulan dokumen — semuanya adalah batch download. Episode ini adalah tentang bekerja massal: satu perintah untuk banyak file, dengan kendali penuh atas tempat dan nama hasilnya.
Ini seperti beda antara mengirim surat satu per satu dan menyetor semua paket ke satu ekspedisi dengan satu daftar tujuan. Wget membaca daftar tujuan itu, mengatur jalur pengirimannya, dan melaporkan hasilnya — tanpa kalian mengetik ulang satu pun URL.
-iOpsi -i (atau --input-file) memberi tahu wget untuk membaca daftar URL dari sebuah file — satu URL per baris. Mulailah dengan membuat daftar tujuan:
https://example.com/
https://example.com/robots.txt
https://example.org/
https://example.org/robots.txt
https://example.net/
https://example.net/robots.txt
https://www.example.com/
https://www.example.com/robots.txt
https://example.edu/
https://example.edu/robots.txtLalu jalankan batch download-nya:
wget -i urls.txtWget membaca setiap baris, men-download satu per satu, dan menyimpan hasilnya sesuai aturan penentuan nama yang sudah kita pelajari. Baris kosong dilewati otomatis. Wget juga menerima input dari stdin dengan -i - — berguna ketika daftar URL dihasilkan oleh perintah lain:
cat urls.txt | wget -i -Note
Satu hal yang perlu kalian tahu: wget tidak menganggap baris yang diawali # sebagai komentar — ia akan mencoba men-download baris tersebut dan gagal dengan error parse. Simpan daftar URL kalian bersih dari baris komentar, atau letakkan daftar tersebut di file terpisah.
-i dengan Opsi LainKekuatan -i muncul saat digabungkan dengan opsi yang sudah kita pelajari — -c untuk resume, -P untuk direktori, -a untuk log. Semua opsi berlaku untuk setiap URL dalam daftar:
wget -c -i urls.txt -a batch.logDi sini -c memastikan file yang terputus dilanjutkan, dan -a batch.log mencatat seluruh riwayat dalam satu file. Ini pola standar untuk job batch yang dijalankan berulang — misalnya sinkronisasi aset harian.
-PSecara default, wget men-download ke direktori kerja saat ini. Untuk mengumpulkan hasil batch ke direktori khusus, gunakan -P (atau --directory-prefix):
wget -P /tmp/downloads https://example.com/robots.txtWget membuat direktori tersebut jika belum ada, lalu menaruh robots.txt di dalamnya. Ini seperti menentukan "gudang tujuan" sebelum pengiriman — membuat hasil download tidak bercampur dengan file kerja lain. Kombinasikan dengan -i untuk menyalurkan seluruh batch ke satu folder:
wget -i urls.txt -P /tmp/downloads--content-dispositionAda satu kasus di mana aturan penentuan nama dari URL gagal: URL seperti https://example.com/download?id=42 tidak mengandung nama file. Tanpa bantuan, wget menamai hasilnya download?id=42 — jelek untuk dibaca manusia dan merepotkan untuk dijadikan file.
Banyak server yang baik mengirim nama yang disarankan lewat header Content-Disposition: attachment; filename="laporan.pdf". Wget bisa memakainya dengan opsi --content-disposition:
wget --content-disposition 'https://example.com/download?id=42'Alih-alih download?id=42, file tersimpan sebagai laporan.pdf — persis nama yang disarankan server. Ini sangat membantu untuk download otomatis dari endpoint yang menghasilkan file dinamis.
Tip
Cek dulu apakah server mengirim header tersebut: wget -S URL akan menampilkan semua header respons. Jika ada baris Content-Disposition, --content-disposition akan bekerja; jika tidak ada, wget kembali ke penentuan nama dari URL.
-xSecara default, wget men-download file dengan nama saja — struktur direktori dari URL dibuang. Opsi -x (atau --force-directories) mengubah perilaku ini: wget membuat ulang struktur direktori dari path URL, termasuk nama host-nya:
wget -x https://example.com/assets/img/logo.pngHasilnya, file tersimpan di example.com/assets/img/logo.png — persis mengikuti struktur URL. Ini adalah fondasi dari mirroring yang akan kita bahas lebih dalam di episode-episode recursive download. Dengan -x, hasil download bisa langsung menjadi tiruan struktur server aslinya.
Perbedaan praktisnya:
| Situasi | Tanpa -x | Dengan -x |
|---|---|---|
| Satu file | logo.png di direktori kerja | example.com/assets/img/logo.png |
| Banyak file dari satu host | Bercecer di satu direktori | Rapi mengikuti struktur URL |
Berikut rangkuman pola batch download yang paling sering dipakai di production:
wget -c -i urls.txt -P /backup/files -a batch.logBacanya: lanjutkan file yang terputus (-c), ambil semua URL dari daftar (-i urls.txt), simpan ke /backup/files (-P), dan catat semuanya di batch.log (-a). Empat opsi sederhana yang bersama-sama membentuk job download andal untuk dijadwalkan di cron.
Warning
Hindari menggabungkan -O dengan batch. -O hanya masuk akal untuk satu URL — pada batch, hasilnya akan ditulis ke file yang sama dan saling menimpa. Untuk batch, gunakan -P (direktori) dan -x (struktur) sebagai pengatur lokasi, bukan -O.
Meletakkan baris komentar di urls.txt. Wget mencoba men-downloadnya dan gagal. Simpan daftar URL bersih tanpa #.
Menggabungkan -O dengan banyak URL. Semua hasil menimpa file yang sama. Pakai -P atau -x untuk batch.
Lupa -P lalu hasil batch bercampur di direktori kerja. Tentukan gudang tujuan sejak awal.
Mengharapkan --content-disposition pada server yang tidak mengirim header tersebut. Opsi ini hanya berfungsi jika header-nya ada — periksa dengan wget -S URL.
Pada episode 5 ini kalian telah menguasai download massal: membaca daftar URL dari file dengan -i (termasuk dari stdin), menggabungkannya dengan -c dan -a untuk job batch yang andal, mengatur direktori tujuan dengan -P, memakai nama file dari header server dengan --content-disposition, serta mempertahankan struktur URL dengan -x.
Inti yang harus dibawa pulang:
-i FILE men-download banyak URL dari satu daftar; -i - membaca dari stdin.-P DIR menentukan direktori tujuan; -x mempertahankan struktur URL.--content-disposition memakai nama file dari header server.-O hanya untuk satu URL; untuk batch gunakan -P dan -x.Di episode 6 selanjutnya kita akan membahas FTP & file transfer — men-download dan mengunggah lewat protokol FTP, memahami perbedaannya dengan HTTP, serta praktik aman untuk transfer file antar server. Sampai jumpa di episode 6!