2012-03-13 13 views
101

Używam Wget do wysyłania żądań http do świeżego serwera WWW. Robię to, aby ogrzać pamięć podręczną MySQL. Nie chcę zapisywać plików po ich wyświetleniu.Jak mogę poprosić o plik, ale nie mogę go zapisać przy pomocy Wget?

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

Czy mogę zrobić coś takiego jak -do-not-save-file z wget?

+3

To jest lepsze pytanie do Super User lub Unix.SE. –

+2

jako programista Chcę przetestować serwer za pomocą wget, a następnie to pytanie jest poważnie na temat. Ponieważ najlepsza odpowiedź na temat otrzymała 142 pozytywnych głosów, więc to pytanie powinno zostać ponownie włączone jako na temat –

Odpowiedz

191

Zastosowanie q flag w trybie cichym i powiedzieć wget do wyjścia na standardowe wyjście z O- (wielka litera o) i przekierować do /dev/null odrzucić wyjście:

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

> przekierowania wyjścia aplikacji (w pliku). jeśli > jest poprzedzone znakiem ampersand, powłoka przekierowuje wszystkie wyjścia (błąd i normalne) do pliku z prawej strony >. Jeśli nie określisz znaku ampersand, przekierowane zostanie tylko normalne wyjście.

jeśli plik jest /dev/null, wówczas wszystkie są odrzucane.

Działa to jak dobrze i prostsze:

wget -O/dev/null -q $url 
+0

co zrobić w ampersandzie i większe niż w tym poleceniu? możesz po prostu potokować wyjście do/dev/null ... wget -qO- |/dev/null ...? –

+0

@ T.BrianJones, zaktualizowano – perreal

+0

Uh, próbowałem tego i to nie działało dla mnie. Z tego, co się dowiedziałem, znaki ampersand powinny pochodzić po większym niż symbol. –

39

Curl robi to domyślnie bez parametrów lub flagi, chciałbym użyć go do swoich celów:

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

Curl więcej o strumieniach i wget to więcej informacji na temat kopiowania witryn opartych na this comparison.

+1

Zimno wyjaśnisz, co 2> i 1 oznacza? Mam> ale dlaczego koniec? – apscience

+2

@gladoscc najpierw '>/dev/null' przekierowuje [std out] (http://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29) do/dev/null ('>/dev/null' jest skrótem od '1>/dev/null'), drugie przekierowuje [std err] (http://en.wikipedia.org/wiki/Standard_streams#Standard_error_.28stderr.29). –

+0

@apscience Wystarczy dodać. Deskryptor pliku dla standardowego wyjścia to 1. Powłoki przyjmują standardowe wyjście, gdy rezygnujesz z deskryptora z przekierowania. Więc '> foo' jest interpretowane jako' 1> foo'. Kiedy '&' następuje po przekierowaniu, poleca powłoce przekierowanie poprzedniego deskryptora pliku do _same output_ jako późniejszego. W tym przypadku '2> & 1' określa deskryptor pliku przekierowania 2 (std err) w tym samym miejscu co deskryptor pliku 1 (std out). Ponieważ std out jest już przekierowany do/dev/null, tam również zostanie przekierowane std err. Możesz również napisać: '1>/dev/null 2>/dev/null' lub' 2>/dev/null> & 2'. – ktbiz

30

Można użyć -O- (wielka litera O), aby przekierować zawartość do standardowego wejścia lub do pliku (nawet specjalnych plików, takich jak /dev/null/dev/stderr/dev/stdout)

wget -O- http://yourdomain.com 

Lub:

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

Lub: (ten sam wynik co ostatnie polecenie)

wget -O/dev/null http://yourdomain.com 
+0

Thx, działa również na oknach. – Pyjong

+0

Dzięki, bezpośrednie do/dev/null było inteligentne, a więc poprawna odpowiedź: chcę "statystyki wyjściowe", ale nie zawartość. – stolsvik

Powiązane problemy