HTTP realmente não tem uma noção de diretórios. As barras que não sejam as três primeiras ( http://example.com/
) não têm nenhum significado especial, exceto ..
em URLs relativos. Portanto, a menos que o servidor siga um formato específico, não há como “baixar todos os arquivos no diretório especificado”.
Se você deseja baixar o site inteiro, sua melhor aposta é percorrer recursivamente todos os links da página principal. Curl não pode fazer isso, mas o wget pode. Isso funcionará se o site não for muito dinâmico (em particular, o wget não verá links criados pelo código Javascript). Comece com wget -r http://example.com/
e procure em “Opções de recuperação recursiva” e “Opções de aceitação / rejeição recursiva” no manual do wget para obter opções mais relevantes (profundidade da recursão, listas de exclusão, etc.).
Se o site tentar bloquear downloads automatizados, talvez seja necessário alterar a string do agente do usuário ( -U Mozilla
) e ignorar robots.txt
(crie um arquivo vazio example.com/robots.txt
e use a -nc
opção para que o wget não tente baixá-lo do servidor).