Do tego celu służy parametr wiersza poleceń --spider. W tym trybie wget nie pobiera plików, a jego wartość zwracana wynosi zero, jeśli zasób został znaleziony, i niezerowy, jeśli nie został znaleziony. Spróbuj tego (w swojej ulubionej powłoce):
wget -q --spider address
echo $?
Lub jeśli chcesz uzyskać pełną wydajność, zostaw -qwyłączone, więc po prostu wget --spider address. -nvpokazuje niektóre dane wyjściowe, ale nie tak bardzo, jak domyślne.
Zauważ, że wget --spiderwysyła żądanie HEAD, a nie GET.
hammar,
3
@hammer, nie jestem pewien, jakiej wersji mogłeś używać, ale z 1.14 wget --spiderwykonuje HEAD i, jeśli się powiedzie, następuje z GET do tego samego adresu URL. Dlatego z opcją rekurencyjną jest przydatna do budowania pamięci podręcznej dla witryny sieci Web po stronie serwera.
danorton
27
Jeśli chcesz sprawdzić cicho przez $? bez kłopotów z grep'owaniem wyjścia wget możesz użyć:
Działa nawet w przypadku adresów URL zawierających tylko ścieżkę, ale ma tę wadę, że coś jest naprawdę pobierane, więc nie jest to zalecane podczas sprawdzania istnienia dużych plików.
Jeśli jesteś w katalogu, w którym tylko root ma dostęp do zapisu w systemie. Następnie możesz używać bezpośrednio wget www.example.com/wget-testprzy użyciu standardowego konta użytkownika. Więc trafi na adres URL, ale z powodu braku uprawnień do zapisu plik nie zostanie zapisany. Ta metoda działa dobrze, ponieważ używam tej metody dla cronjob. Dzięki.
Nie powinno być używane ... Ryzykowne, ponieważ uprawnienia od administratora systemu mogą zmienić i złamać twój zamiar i bezużyteczne, gdy jest wbudowana flaga, taka jak --spiderta, która robi dokładnie to, o co prosi OP
Odpowiedzi:
Do tego celu służy parametr wiersza poleceń
--spider
. W tym trybie wget nie pobiera plików, a jego wartość zwracana wynosi zero, jeśli zasób został znaleziony, i niezerowy, jeśli nie został znaleziony. Spróbuj tego (w swojej ulubionej powłoce):Lub jeśli chcesz uzyskać pełną wydajność, zostaw
-q
wyłączone, więc po prostuwget --spider address
.-nv
pokazuje niektóre dane wyjściowe, ale nie tak bardzo, jak domyślne.źródło
wget --spider
wysyła żądanie HEAD, a nie GET.wget --spider
wykonuje HEAD i, jeśli się powiedzie, następuje z GET do tego samego adresu URL. Dlatego z opcją rekurencyjną jest przydatna do budowania pamięci podręcznej dla witryny sieci Web po stronie serwera.Jeśli chcesz sprawdzić cicho przez $? bez kłopotów z grep'owaniem wyjścia wget możesz użyć:
Działa nawet w przypadku adresów URL zawierających tylko ścieżkę, ale ma tę wadę, że coś jest naprawdę pobierane, więc nie jest to zalecane podczas sprawdzania istnienia dużych plików.
źródło
--spider
Arg ma ustawić kod zwrotny. Ale może dlatego, że po 4 latach, 3 miesiącach i 7 dniach, pająk stał się mądrzejszy.Możesz użyć następującej opcji, aby sprawdzić pliki:
źródło
Tak łatwo.
To ci da
źródło
Jeśli jesteś w katalogu, w którym tylko root ma dostęp do zapisu w systemie. Następnie możesz używać bezpośrednio
wget www.example.com/wget-test
przy użyciu standardowego konta użytkownika. Więc trafi na adres URL, ale z powodu braku uprawnień do zapisu plik nie zostanie zapisany. Ta metoda działa dobrze, ponieważ używam tej metody dla cronjob. Dzięki.sthx
źródło
--spider
ta, która robi dokładnie to, o co prosi OP