ПРИМЕЧАНИЕ: Мне известно, что это более старый вопрос, но я считаю, что нашел решение для тех, кто использует wget
, лучше, чем любой из приведенных выше ответов.
wget -q $URL 2>/dev/null
Сохранит целевой файл в локальном каталоге, если и только если код состояния HTTP находится в диапазоне 200 (ОК).
Кроме того, если вы хотите сделать что-то вроде распечатки ошибки всякий раз, когда запрос был встречен с ошибкой, вы можете проверить код завершения wget для ненулевых значений, например:
wget -q $URL 2>/dev/null
if [ $? != 0]; then
echo "There was an error!"
fi
Надеюсь, это поможет кому-то, кто столкнулся с теми же проблемами, что и я.
Обновление:
Я просто поместил это в более удобную для сценариев форму для своего собственного проекта и решил поделиться:
function dl {
pushd . > /dev/null
cd $(dirname $1)
wget -q $BASE_URL/$1 2> /dev/null
if [ $? != 0 ]; then
echo ">> ERROR could not download file \"$1\"" 1>&2
exit 1
fi
popd > /dev/null
}