wgetを使用して404をチェックし、実際にリソースをダウンロードしないことはできますか?もしそうなら、どのように?ありがとう
回答:
これに--spider
ぴったりのコマンドラインパラメータがあります。このモードでは、wgetはファイルをダウンロードせず、リソースが見つかった場合は戻り値がゼロになり、見つからなかった場合は戻り値がゼロ以外になります。これを(お気に入りのシェルで)試してください:
wget -q --spider address
echo $?
または、完全な出力が必要な場合は、-q
オフのままにしてくださいwget --spider address
。-nv
いくつかの出力を表示しますが、デフォルトほどではありません。
wget --spider
GETではなくHEADリクエストを送信することに注意してください。
wget --spider
HEADを実行し、成功した場合は同じURLへのGETを実行します。したがって、再帰オプションを使用すると、サーバー側のWebサイトのキャッシュを構築するのに役立ちます。
$で静かにチェックしたい場合は?wgetの出力をgrepする手間をかけずに、次のものを使用できます。
wget -q "http://blah.meh.com/my/path" -O /dev/null
パスだけのURLでも機能しますが、実際にダウンロードされるという欠点があるため、大きなファイルの存在を確認する場合はお勧めしません。
--spider
argはないリターンコードを設定します。しかし、それはおそらく、4年3か月7日後にクモが賢くなったためです。