Estou usando curl nesta sintaxe:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Se eu executar este comando duas vezes, obtenho dois arquivos:
myfile.jpg
myfile-1.jpg
Como posso dizer ao CURL que quero substituir o arquivo, se ele existir?
Estou usando curl nesta sintaxe:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Se eu executar este comando duas vezes, obtenho dois arquivos:
myfile.jpg
myfile-1.jpg
Como posso dizer ao CURL que quero substituir o arquivo, se ele existir?
curl
versão em que sistema?Respostas:
Usar:
fonte
noclobber
opção ativada (set +o noclobber
).Encontrei o mesmo problema e desejo reutilizar o mesmo nome de arquivo, independentemente do servidor, no seu caso, você pode obter o nome de arquivo
basename
então você pode escrever uma função auxiliar bash como:
mas, no meu caso, o nome do arquivo nem faz parte do URL, ele vem com a disposição do conteúdo; com enrolar a linha de comando é
você pode ignorar o que
-fSL
ele lida se o lado do servidor der redirecionamento 302; o-R
timestamp do lado do servidor,-J
considerar o lado do servidorContent-Disposition
e-O
mudar para o comportamento de download em vez de descarregar no terminal;no entanto, ele ainda se recusa a substituir se o nome do arquivo existir; Quero que ele sobrescreva se o
Last-Modified
registro de data e hora do lado do servidor for mais recente;acaba com uma solução wget capaz de:
o
-N
é verificar o tempo do servidor no selo e sobrescrever somente quando o servidor tiver uma nova versão;--content-disposition
é considerarContent-Disposition
cabeçalho; O comportamento padrão do wget é fazer o download, com o nome de arquivo fornecido no servidor.no seu caso, se você não se importa com registro de data e hora, é apenas
fonte