Algo parecido com isso pode funcionar para você:
curl -sIkL http://repo1/xyz/LATEST | sed -r '/filename=/!d;s/.*filename=(.*)$//'
Dê uma olhada na página de manual curl(1)
para as opções. O interessante é -I, --head
.
Explicação conforme solicitado por comentários:
A ideia é solicitar apenas o cabeçalho de resposta HTTP.
Portanto, as opções -I
são usadas. -s
silents ondulam para não imprimir nada além do cabeçalho. -k
permite conexões SSL "inseguras" (o curl rejeitaria os certificados autoassinados de outra forma). E -L
para seguir redirecionamentos de localização HTTP (S).
Em seguida, sed(1)
é usado para obter o nome do arquivo do cabeçalho de resposta. Estamos pesquisando o campo filename=
, portanto, a parte /filename=/!d
remove qualquer coisa sem esse campo da saída. Finalmente, a parte s/.*filename=(.*)$//
imprime o nome do arquivo apenas se o campo for encontrado.