--spiderGenau dafür gibt es den Kommandozeilenparameter . In diesem Modus lädt wget die Dateien nicht herunter und der Rückgabewert ist Null, wenn die Ressource gefunden wurde, und ungleich Null, wenn sie nicht gefunden wurde. Versuchen Sie dies (in Ihrer Lieblingsschale):
wget -q --spider address
echo $?
Oder wenn Sie die volle Ausgabe wünschen, lassen Sie das -qAus, also einfach wget --spider address. -nvzeigt einige Ausgaben an, aber nicht so viel wie die Standardeinstellung.
Beachten Sie, dass wget --spidereine HEAD-Anforderung gesendet wird, keine GET.
Hammar
3
@hammer, ich bin mir nicht sicher, welche Version Sie möglicherweise verwendet haben, aber mit 1.14 wget --spiderwird ein HEAD ausgeführt und, falls erfolgreich, mit einem GET auf dieselbe URL. Mit der rekursiven Option ist es daher nützlich, den Cache für eine serverseitige Website zu erstellen.
Danorton
26
Wenn Sie ruhig über $ überprüfen möchten? Ohne den Aufwand, die Ausgabe von grep'ing wget zu bearbeiten, können Sie Folgendes verwenden:
Funktioniert auch bei URLs mit nur einem Pfad, hat jedoch den Nachteil, dass etwas wirklich heruntergeladen wurde, sodass dies nicht empfohlen wird, wenn große Dateien auf Existenz überprüft werden.
Das --spiderArgument setzt einen Rückkehrcode. Aber vielleicht liegt das daran, dass die Spinne nach 4 Jahren, 3 Monaten und 7 Tagen schlauer geworden ist.
John Red
Ich habe es kürzlich nicht überprüft, würde mich aber nicht überraschen, wenn sie es inzwischen reparieren würden.
3ronco
16
Mit der folgenden Option können Sie nach Dateien suchen:
Wenn Sie sich in einem Verzeichnis befinden, in dem nur root Zugriff zum Schreiben im System hat. Dann können Sie direkt wget www.example.com/wget-testmit einem Standardbenutzerkonto verwenden. Es wird also die URL treffen, aber da keine Schreibberechtigungsdatei vorhanden ist, wird diese nicht gespeichert. Diese Methode funktioniert gut für mich, da ich diese Methode für einen Cronjob verwende. Vielen Dank.
Sollte nicht verwendet werden ... Riskant, da die Berechtigungen des Systemadministrators Ihre Absicht ändern und brechen können und nutzlos sind, wenn ein eingebautes Flag vorhanden ist, --spiderdas genau das tut, was das OP verlangt
Antworten:
--spider
Genau dafür gibt es den Kommandozeilenparameter . In diesem Modus lädt wget die Dateien nicht herunter und der Rückgabewert ist Null, wenn die Ressource gefunden wurde, und ungleich Null, wenn sie nicht gefunden wurde. Versuchen Sie dies (in Ihrer Lieblingsschale):Oder wenn Sie die volle Ausgabe wünschen, lassen Sie das
-q
Aus, also einfachwget --spider address
.-nv
zeigt einige Ausgaben an, aber nicht so viel wie die Standardeinstellung.quelle
wget --spider
eine HEAD-Anforderung gesendet wird, keine GET.wget --spider
wird ein HEAD ausgeführt und, falls erfolgreich, mit einem GET auf dieselbe URL. Mit der rekursiven Option ist es daher nützlich, den Cache für eine serverseitige Website zu erstellen.Wenn Sie ruhig über $ überprüfen möchten? Ohne den Aufwand, die Ausgabe von grep'ing wget zu bearbeiten, können Sie Folgendes verwenden:
Funktioniert auch bei URLs mit nur einem Pfad, hat jedoch den Nachteil, dass etwas wirklich heruntergeladen wurde, sodass dies nicht empfohlen wird, wenn große Dateien auf Existenz überprüft werden.
quelle
--spider
Argument setzt einen Rückkehrcode. Aber vielleicht liegt das daran, dass die Spinne nach 4 Jahren, 3 Monaten und 7 Tagen schlauer geworden ist.Mit der folgenden Option können Sie nach Dateien suchen:
quelle
Ja einfach.
Das wird dir geben
quelle
Wenn Sie sich in einem Verzeichnis befinden, in dem nur root Zugriff zum Schreiben im System hat. Dann können Sie direkt
wget www.example.com/wget-test
mit einem Standardbenutzerkonto verwenden. Es wird also die URL treffen, aber da keine Schreibberechtigungsdatei vorhanden ist, wird diese nicht gespeichert. Diese Methode funktioniert gut für mich, da ich diese Methode für einen Cronjob verwende. Vielen Dank.sthx
quelle
--spider
das genau das tut, was das OP verlangt