Bagaimana cara saya meminta file tetapi tidak menyimpannya dengan Wget? [Tutup]

140

Saya menggunakan Wget untuk membuat permintaan http ke server web baru. Saya melakukan ini untuk menghangatkan cache MySQL. Saya tidak ingin menyimpan file setelah disajikan.

wget -nv -do-not-save-file $url

Bisakah saya melakukan sesuatu -do-not-save-filedengan wget?

T. Brian Jones
sumber
3
Ini adalah pertanyaan yang lebih baik untuk Pengguna Super atau Unix.SE.
Matt Ball
4
sebagai pengembang saya ingin menguji server dengan wget dan dari pertanyaan ini serius pada topik. Saat jawaban terbaik pada topik mendapat 142 suara positif, maka pertanyaan ini harus diaktifkan kembali sesuai topik
Mladen Adamovic
Atau ke -q dan -O, gunakan flag -nd (tanpa direktori) dan --delete-after.
Suzana
1
Menurut doc bantuan (wget -h), Anda dapat menggunakan opsi --spider untuk melewati unduhan (versi 1.14).
rocky qi

Jawaban:

257

Gunakan qflag untuk mode senyap, dan kirim wgetke keluaran ke stdout dengan O-(huruf besar o) dan redirect ke /dev/nulluntuk membuang output:

wget -qO- $url &> /dev/null

>pengalihan output aplikasi (ke file). jika >didahului oleh ampersand, shell mengarahkan ulang semua output (error dan normal) ke kanan file >. Jika Anda tidak menentukan ampersand, maka hanya output normal yang dialihkan.

./app &>  file # redirect error and standard output to file
./app >   file # redirect standard output to file
./app 2>  file # redirect error output to file

jika file /dev/nullmaka semua dibuang.

Ini juga berfungsi, dan lebih sederhana:

wget -O/dev/null -q $url
perreal
sumber
apa yang lebih besar dan lebih besar dari pada perintah ini? bisakah Anda menyalurkan output ke / dev / null ... wget -qO- | / dev / null ...?
T. Brian Jones
Eh, saya mencoba ini dan itu tidak berhasil untuk saya. Dari apa yang saya temukan, ampersand harus muncul setelah simbol yang lebih besar.
Tiago Espinha
7
Untuk pengguna Windows: wget -q -O NUL http: // ... Matikan logging dan rute unduh ke NUL (sama dengan / dev / null)
vidario
wget --spider $ url Akan melakukannya.
thebugfinder
1
wget -O / dev / null $ url
Storm
43

Curl melakukannya secara default tanpa parameter atau flag, saya akan menggunakannya untuk tujuan Anda:

curl $url > /dev/null 2>&1

Curl lebih tentang aliran dan wget lebih banyak tentang menyalin situs berdasarkan perbandingan ini .

Oleg Mikheev
sumber
1
Dingin Anda jelaskan apa artinya 2> & 1? > Saya mengerti tetapi mengapa akhirnya?
apscience
2
@ gladoscc >/dev/nullpengalihan pertama std keluar ke / dev / null ( >/dev/nullkependekan dari 1>/dev/null), pengalihan kedua std err untuk std out.
Oleg Mikheev
@apscience Hanya untuk menambahkan. Deskriptor file untuk std out adalah 1. Shells menganggap std out ketika Anda meninggalkan deskriptor dari redirect. Jadi >foodiartikan sebagai 1>foo. Ketika &mengikuti pengalihan, itu memerintahkan shell untuk mengarahkan kembali deskriptor file yang sebelumnya ke output yang sama seperti yang nanti. Dalam hal ini, 2>&1kata redirect file deskriptor 2 (std err) ke tempat yang sama dengan deskriptor file 1 (std out). Karena std out sudah diarahkan ke / dev / null, std err juga akan diarahkan ke sana. Anda juga bisa menulis: 1>/dev/null 2>/dev/nullatau 2>/dev/null >&2.
ktbiz
Jawaban ini benar, tetapi kemudian menyertakan redirection output yang sama dengan jawaban yang dipilih. Cukup menjalankan curl http://www.example.comsudah cukup.
Aaron Cicali
40

Anda dapat menggunakan -O-(huruf besar o) untuk mengarahkan konten ke stdout (output standar) atau ke file (bahkan file khusus seperti /dev/null /dev/stderr /dev/stdout)

wget -O- http://yourdomain.com

Atau:

wget -O- http://yourdomain.com > /dev/null

Atau: (hasil yang sama dengan perintah terakhir)

wget -O/dev/null http://yourdomain.com
Marco Biscaro
sumber
Terima kasih, bekerja di windows juga.
Pyjong
Terima kasih, direct-to- / dev / null cerdas, dan dengan demikian jawaban yang benar: Saya ingin "statistik output", tetapi bukan isinya.
stolsvik