Eu tento pegar fotos de algumas galerias de algum site. Eu não sei quantos arquivos existem, mas sei que os arquivos são nomeados continuamente. Então eu uso um regex assim:
wget http://example.org/some_path_to_gallery_x/DSC{0001..9999}.jpg
Ainda é possível que alguns arquivos estejam faltando, mas se houver mais de 10 ou N arquivos ausentes em fila, a galeria obviamente chegará ao fim. Como abortar wget
nesse momento para evitar tráfego desnecessário e tempo de execução para que eu possa alternar para outro caminho de galeria?
Até agora, tenho apenas um loop for, um contador e wget
código de saída em mente. Mas estou fraco em BASH por isso. Ou pode haver algumas chaves mágicas wget
para isso?
UPD: um script BASH para isso.
#!/bin/bash
G_PATH=$1
MAX_MISSING=10
C_ABORT=$MAX_MISSING
for i in {0001..9999}
do
wget 'http://example.org/'"${G_PATH}"/DSC${i}.jpg 2>/dev/null
if [ $? -eq 0 ]
then
C_ABORT=$MAX_MISSING
else
C_ABORT=$((C_ABORT-1))
if [ $C_ABORT -eq 0 ]
then
echo break at DSC$i.jpg
break
else
echo DSC$i.jpg is missing
fi
fi
done
Tags wget