Я використовую curl у цьому синтаксисі:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Якщо запустити цю команду двічі, я отримаю два файли:
myfile.jpg
myfile-1.jpg
Як я можу сказати CURL, що я хочу, щоб він перезаписав файл, якщо він існує?
Я використовую curl у цьому синтаксисі:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Якщо запустити цю команду двічі, я отримаю два файли:
myfile.jpg
myfile-1.jpg
Як я можу сказати CURL, що я хочу, щоб він перезаписав файл, якщо він існує?
Відповіді:
Використання:
curl http://mysite.com/myfile.jpg > myfile.jpg
noclobberопції ( set +o noclobber).
Я зіткнувся з тією ж проблемою, і я хочу повторно використовувати те саме ім’я файлу, що б не було на сервері, у вашому випадку ви можете отримати ім'я файлу basename
➸ basename 'http://mysite.com/myfile.jpg'
myfile.jpg
тоді ви можете написати функцію помічника баш-типу:
➸ function download { name="$(basename $1)"; curl "$1" > "$name"; }
➸ download 'http://mysite.com/myfile.jpg'
але в моєму випадку ім'я файлу навіть не є частиною URL-адреси, воно має зміст-диспозицію; з curl командний рядок є
$ curl -fSL -R -J -O 'http://some-site.com/getData.php?arg=1&arg2=...'
Ви можете ігнорувати -fSLобробку, якщо сторона сервера дає перенаправлення 302; -Rдля сервера на стороні мітку часу, -Jщоб розглянути на стороні сервера Content-Disposition, і -Oпереключитися на поведінку завантаження замість скидання на термінал;
однак воно все ще страждає відмовою перезаписувати, якщо ім'я файлу існує; Я хочу, щоб вона перезаписалася, якщо Last-Modifiedчасова мітка на стороні сервера новіша;
закінчується рішення wget, яке він може зробити так:
$ wget -NS --content-disposition 'http://some-site.com/getData.php?arg=1&arg2=...'
- -Nце перевірити tiemstamp на стороні сервера та перезаписати лише тоді, коли на стороні сервера є нова версія; --content-disposition- розглянути Content-Dispositionзаголовок; і поведінка wget за замовчуванням полягає у завантаженні імені файлу, вказаного з боку сервера.
у вашому випадку, якщо вас не хвилює часова марка, це просто
$ wget -O myfile.jpg http://mysite.com/myfile.jpg
curlверсія в якій системі?