Как сказать curl, чтобы проверить существование файла перед загрузкой?

я использую эту команду для загрузки серии изображений:

curl -O --max-time 10 --retry 3 --retry-delay 1 http://site.com/image[0-100].jpg

некоторые изображения повреждены, поэтому я удаляю их.

for i in *.jpg; do jpeginfo -c $i || rm $i; done

как рассказала curl чтобы проверить существование файла перед загрузкой?

Я могу использовать эту команду, чтобы предотвратить curl переопределить существующие изображения:

chmod 000 *.jpg

но я не хочу повторно загружать их.

2 ответов


если целевой ресурс статический,curl имеет параметр -z для загрузки только новой целевой копии.

пример использования:

curl -z image0.jpg http://site.com/image0.jpg

пример для вашего случая:

for i in $(seq 0 100); do curl -z image$i.jpg -O --max-time 10 --retry 3 --retry-delay 1 http://site.com/image$i.jpg; done


Не знаю, как это сделать с curl, но вы можете проверить его с Bash, прежде чем запускать команду curl.

for FILE in FILE1 FILE2 …
do
  if [[ ! -e $FILE ]]; then
    # Curl command to download the image.
  fi
done