Я использую 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
версия на какой системе?Ответы:
Использование:
источник
noclobber
включена опция (set +o noclobber
).Я столкнулся с той же проблемой, и я хочу использовать одно и то же имя файла независимо от того, что серверная часть дает, в вашем случае вы можете получить имя файла по
basename
тогда вы можете написать вспомогательную функцию bash, например:
но в моем случае имя файла даже не является частью URL-адреса, оно идет с расположением содержимого; с curl командная строка
вы можете игнорировать
-fSL
дескрипторы it, если серверная часть дает 302 Redirection;-R
метка времени на стороне сервера,-J
чтобы учитывать сторону сервераContent-Disposition
и-O
переключаться в режим загрузки вместо выгрузки на терминал;Тем не менее, он по-прежнему страдает от отказа перезаписать, если имя файла существует; Я хочу, чтобы он перезаписывал, если
Last-Modified
временная метка на стороне сервера новее;в конечном итоге решение Wget, которое он может сделать так:
-N
является проверка на стороне сервера tiemstamp и перезаписать только тогда , когда на стороне сервера имеет новую версию;--content-disposition
считатьContent-Disposition
заголовок; и поведение wget по умолчанию заключается в загрузке файла с именем, данным со стороны сервера.в вашем случае, если вам не нужна метка времени, это просто
источник