O HTTP não tem realmente uma noção de directórios. Os cortes para além dos três primeiros (http://example.com/
) não têm qualquer significado especial, excepto no que diz respeito aos ..
em URLs relativos. Assim, a menos que o servidor siga um formato particular, não há forma de “descarregar todos os ficheiros no directório especificado”.
Se quiser descarregar todo o sítio, a sua melhor aposta é atravessar recursivamente todos os links da página principal. O Curl não o pode fazer, mas o wget pode. Isto funcionará se o site não for demasiado dinâmico (em particular, wget não verá ligações que são construídas por código Javascript). Comece com wget -r http://example.com/
, e procure em “Recursive Retrieval Options” e “Recursive Accept/Rejeit Options” no manual do wget para opções mais relevantes (profundidade de recursividade, listas de exclusão, etc.).
Se o website tentar bloquear downloads automáticos, poderá ser necessário alterar a string de agente de utilizador (-U Mozilla
), e ignorar robots.txt
(criar um ficheiro vazio example.com/robots.txt
e utilizar a opção -nc
para que o wget não tente fazer o download a partir do servidor).