Vamos examinar um exemplo.
Arquivo relative_urls.list
:
> cat relative_urls.list
/users/449/oli
/users/449
/help/badges
/help/badges/185/curious
/unanswered
/questions/tagged/12.04
/questions/tagged/boot
/questions/tagged/oracle
/questions/tagged/internet_explorer
/questions/tagged/outlook
Gostaríamos de verificar se esses documentos estão disponíveis no site link .
Possível solução:
> cat relative_urls.list |while read i ; do curl --head -s "http://askubuntu.com"$i |grep -q '^HTTP.*200' && echo "OK '$i'" ||echo "fail '$i'" ; done
E o resultado é:
OK '/users/449/oli'
fail '/users/449'
OK '/help/badges'
OK '/help/badges/185/curious'
OK '/unanswered'
OK '/questions/tagged/12.04'
OK '/questions/tagged/boot'
OK '/questions/tagged/oracle'
fail '/questions/tagged/internet_explorer'
fail '/questions/tagged/outlook'
Se você preferir outra definição de disponibilidade de url, poderá alterar o comando grep
para algo mais relevante para suas condições.
O importante é que curl
mostra se uma URL é servida por um servidor da web. Não existe um método confiável para determinar a existência do diretório no sistema de arquivos do servidor web via http.