Eu tenho um diretório da web onde guardo alguns arquivos de configuração. Eu gostaria de usar o wget para baixar esses arquivos e manter sua estrutura atual. Por exemplo, o diretório remoto se parece com:
http://mysite.com/configs/.vim/
.vim contém vários arquivos e diretórios. Eu quero replicar isso no cliente usando o wget. Não consigo encontrar a combinação certa de sinalizadores wget para fazer isso. Alguma ideia?
Para baixar um diretório recursivamente, o que rejeita arquivos e downloads index.html * sem o nome do host, o diretório pai e toda a estrutura de diretórios:
fonte
Para qualquer pessoa que tenha problemas semelhantes. O Wget segue, o
robots.txt
que pode não permitir que você acesse o site. Não se preocupe, você pode desativá-lo:http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
fonte
Você deve usar o sinalizador -m (espelho), pois isso cuida de não mexer com os carimbos de data e hora e se repetir indefinidamente.
Se você adicionar os pontos mencionados por outras pessoas neste segmento, seria:
fonte
Aqui está o comando wget completo que funcionou para mim para baixar arquivos do diretório de um servidor (ignorando
robots.txt
):fonte
Se
--no-parent
não ajudar, você pode usar a--include
opçãoEstrutura do diretório:
E você deseja fazer o download,
downloads/good
mas não odownloads/bad
diretório:fonte
funciona para mim.
Talvez você tenha um .wgetrc que esteja interferindo nele?
fonte
Para buscar um diretório recursivamente com nome de usuário e senha, use o seguinte comando:
fonte
O Wget 1.18 pode funcionar melhor, por exemplo, fui mordido por um bug da versão 1.12, onde ...
... recupera apenas index.html em vez de todos os arquivos.
A solução foi observar cerca de 301 redirecionamentos e tentar o novo local - dada a nova URL, o wget obteve todos os arquivos no diretório.
fonte
Tudo que você precisa é de dois sinalizadores, um é
"-r"
para recursão e"--no-parent"
(ou-np
) para não entrar no'.'
e".."
. Como isso:wget -r --no-parent http://example.com/configs/.vim/
É isso aí. Ele irá baixar na árvore local seguinte:
./example.com/configs/.vim
. No entanto, se você não desejar os dois primeiros diretórios, use o sinalizador adicional,--cut-dirs=2
conforme sugerido nas respostas anteriores:wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
E ele fará o download da sua árvore de arquivos apenas no
./.vim/
De fato, obtive a primeira linha desta resposta precisamente no manual wget , eles têm um exemplo muito claro no final da seção 4.3.
fonte
A opção a seguir parece ser a combinação perfeita ao lidar com o download recursivo:
wget -nd -np -P / dest / dir --recursivo http: // url / dir1 / dir2
Trechos relevantes das páginas de manual por conveniência:
fonte
Você poderá fazê-lo simplesmente adicionando -r
fonte
Esta versão é baixada recursivamente e não cria diretórios pai.
Uso:
~/.bashrc
ou colar no terminalwgetod "http://example.com/x/"
fonte