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?


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

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 .


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.