Estou tentando espelhar um diretório via FTP com wget. O comando que estou usando é
wget -m ftp://user:[email protected]/foo/bar/
Mas, ao executá-lo, recebo o seguinte:
--2018-10-10 15:01:32-- ftp://user:*password*@192.168.1.1/foo/bar/
=> ‘192.168.3.150/foo/bar/.listing’
Connecting to 192.168.1.1:21... connected.
Logging in as user ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /usr/user/foo/bar ...
No such directory ‘foo/bar’.
Pesquisei nas páginas de manual, pesquisei no Google e não consigo descobrir. Como faço para que o wget realmente baixe o diretório "/foo/bar/", e não "/usr/user/foo/bar/"?
Uma pergunta semelhante no stackoverflow (que envolvia java em vez de wget, mas na verdade o problema subjacente é com a sintaxe da URL, que esperamos ser independente da linguagem) foi resolvida adicionando outra barra e codificação de URL, assim:
Funciona para mim mesmo sem codificação, apenas com uma barra extra:
A primeira barra é descartada (servindo apenas como separador entre o host e o caminho), e a segunda barra realmente conta como parte do caminho.
Você deve conseguir baixar um diretório específico usando
wget
assim:Eu evitaria colocar sua senha no URL, pois ela aparecerá no seu histórico de bash. Este comando, claro, significa que
/foo/bar
está localizado fora/
e em nenhum outro lugar. Se/foo/bar
estiver localizado fora de algo como/var/www
, você precisará incluir o caminho completo no comando.Eu suponho que você esteja usando um UNIX-like baseado no
/usr/user
então pode haver diferenças na função da implementação específicawget
que você está usando.Aqui está uma alternativa usando
curl
:Por favor, leia estes links:
URLs
de FTP Como usar o wget
Usando o wget para baixar recursivamente os diretórios do FTP Faça o
download usando o wget para um diretório diferente do diretório atual
Como especificar o local com o wget?
Baixando arquivo de FTP usando cURL
Por favor, comente se você tiver alguma dúvida ou problema com esta resposta. Eu sugiro que você leia cada link que forneci antes de tentar os comandos. Agradeço feedback para corrigir quaisquer equívocos e melhorar minhas postagens. Posso atualizar minha resposta conforme necessário.
Boa sorte!