NOTE: Je suis conscient que cela est une question ancienne, mais je crois avoir trouvé une meilleure solution pour ceux qui utilisent wget
que ce que les réponses ci-dessus fournissent.
wget -q $URL 2>/dev/null
Enregistrera le fichier cible dans le répertoire local uniquement si le code de statut HTTP est dans la plage des 200 (OK).
De plus, si vous voulez faire quelque chose comme afficher une erreur chaque fois que la requête rencontre une erreur, vous pouvez vérifier le code de sortie de wget pour des valeurs non nulles comme ceci :
wget -q $URL 2>/dev/null
if [ $? != 0]; then
echo "Une erreur est survenue !"
fi
J'espère que cela sera utile à quelqu'un qui rencontre les mêmes problèmes que moi.
Mise à jour : Je viens de mettre ceci sous une forme plus scriptée pour mon propre projet, et j'ai pensé que je pourrais le partager :
function dl {
pushd . > /dev/null
cd $(dirname $1)
wget -q $BASE_URL/$1 2> /dev/null
if [ $? != 0 ]; then
echo ">> ERREUR impossible de télécharger le fichier \"$1\"" 1>&2
exit 1
fi
popd > /dev/null
}