Atualmente estou fazendo com curl:
curl https://example.com/file -o file
Se eu já tiver um arquivo chamado file
em meu diretório, ele será substituído por este comando. Em vez disso, gostaria de retornar uma mensagem de erro informando que o arquivo já existe.
É possível fazer isso apenas usando curl? Não vi um sinalizador para fazer isso e não estou executando o comando em um script bash, portanto, não posso usar um operador de comparação antes de executar o comando.
Testar a existência de um nome em um diretório pode ser feito com o
-e
teste:Se você não quiser encerrar o script nesse ponto:
O teste será verdadeiro se o nome existir, independentemente de o nome ser de um arquivo regular, diretório, pipe nomeado ou outro tipo de objeto do sistema de arquivos.
Veja
man test
no seu sistema.Eu recomendo verificar esta resposta sobre a
-C -
opção curl. Essencialmente, retome o download. Se o arquivo já estiver completo, não há nada a fazer. Isso chamará o servidor para retomar a verificação.