Desculpe, não entendi o ponto inicialmente. Então, uma nova resposta completa (rápida e suja - e já que é programação bash, funciona apenas com o linux): use cURL para determinar se há um redirecionamento (usando o parâmetro -w
); Dependendo do resultado, use wget para obter o URL original ou o alvo de redirecionamento:
url=www.smugmug.com/photos/1235566-S.jpg; redirurl='curl -w "%{redirect_url}" --output /dev/null --silent ${url}'; if [ -z $redirurl ]; then wget -x $url; else wget -x $redirurl; fi
Ou em várias linhas:
url=www.smugmug.com/photos/1235566-S.jpg;
redirurl='curl -w "%{redirect_url}" --output /dev/null --silent ${url}';
if
[ -z $redirurl ];
then wget -x $url;
else wget -x $redirurl; fi
redirurl
é definido para o destino de redirecionamento, se houver algum. Caso contrário, wget
é chamado com o URL original; se sim, wget
chama o alvo de redirecionamento. O parâmetro -x
torna wget
criar os subdiretórios.
Claro, isso lida com apenas um nível de redirecionamento. Para torná-lo mais robusto, você deve verificar recursivamente se houver um redirecionamento. Portanto, não é apenas uma questão de opções de linha de comando se você quiser resolver esse problema de maneira confiável.