Algumas abordagens:
- Do
umask 222(ouumask 277, se o seu umask tiver atualmente 77, ou seja, adicione 200 ao seu umask). Isso fará com que todos os arquivos criados por você sejam protegidosr--(qualquer) em vez derw-(qualquer) , então, uma vez que você criou um arquivo, você não deve ser capaz de sobrescrevê-lo semchmoding primeiro (a menos que você esteja executando como root ). Isso responde à pergunta que você colocou em seu título, mas isso não resolve o seu problema; Significa apenas que você baixará e manterá com sucessoa/1.pdfe perderáb/1.pdf, e não o contrário. (Se for algum consolo, você receberá mensagens de erro alertando você sobre as colisões.) - O problema parece estar no seu arquivo
gwurls.txt, que ingenuamente lista os doisa/1.pdfeb/1.pdf, então tente consertá-lo lá. Mangle comsedou algo parecido com
a/1.pdf a_1.pdf b/1.pdf b_1.pdf
… e, em seguida, escreva um script que execute curl com uma URL de $1 e uma especificação de saída de $2 e execute
xargs -n 2your_script< modified_gwurls.txt
então xargs será executado
your_scripta/1.pdf a_1.pdfyour_scriptb/1.pdf b_1.pdf
Isso fica confuso se algum dos nomes de arquivo tem espaço em branco neles, mas eu acho que isso não é possível para URLs, é?