Estou tentando ftp uma pasta usando o cliente ftp da linha de comando, mas até agora só consegui usar 'get' para obter arquivos individuais.
linux
command-line
ftp
Charles Ma
fonte
fonte
mget
, não é recursivo. resposta de 22/09/08 às 09:01 Thibaut Barrère é mais fácil de entender, mas deve adicionar a opção-l 0
conforme mencionado nos comentáriosRespostas:
Você pode confiar no wget, que geralmente lida com o ftp get corretamente (pelo menos na minha própria experiência). Por exemplo:
Você também pode usar o
-m
que é adequado para espelhamento. Atualmente é equivalente a-r -N -l inf
.Se você tiver alguns caracteres especiais nos detalhes da credencial, poderá especificar os argumentos
--user
e--password
para fazê-lo funcionar. Exemplo com login personalizado com caracteres específicos:EDIT Conforme apontado por @asmaier, observe que, mesmo que
-r
seja para recursão, ele possui um nível máximo padrão de 5:Se você não deseja perder subdiretórios, use melhor a opção de espelhamento
-m
:fonte
wget -m
(--mirror
).wget -r
é limitado a uma profundidade de recursão de 5 por padrão.--user
e--password
também no Red Hat. Meu wget é:GNU Wget 1.11.4 Red Hat modified
Gostaria de saber se é uma coisa versão ou uma coisa distro ...-l 0
, então não há necessidade de usar--mirror
que pode ter alguns efeitos colaterais indesejáveis, tais como .listing arquivoswget --ask-password -rl 99 ftp://[email protected]
. Dessa forma, a senha não é visívelps
e não permanece no histórico. Obviamente, pela natureza do ftp, ele é enviado sem criptografia para o servidor.$
), por exemplo--user='user' --password='pa$$word'
Apenas para complementar a resposta dada por Thibaut Barrère.
eu usei
Observe a barra dupla após o nome do servidor. Se você não colocar uma barra extra, o caminho será relativo ao diretório inicial do usuário.
-nH
evita a criação de um diretório com o nome do servidor-nc
evita a criação de um novo arquivo, se ele já existir no destino (é apenas ignorado)--cut-dirs=5
permite pegar o conteúdo do diretório / absolute / path / to / e colocá-lo no diretório em que você inicia o wget. O número 5 é usado para filtrar os 5 componentes do caminho. A barra dupla significa um componente extra.fonte
--ftp-user=USER
e--ask-password
.fonte
open ftp://USERNAME:PASSWORD@HOST
após o início ncftp ...wget
e mais rápido também no modo TAR. Obrigado!Se
lftp
estiver instalado em sua máquina, usemirror dir
. E você terminou. Veja o comentário de Ciro abaixo se você deseja baixar recursivamente um diretório.fonte
mirror -R dir
faz upload / atualização recursiva de diretóriomirror ./
para baixar todos os arquivos e pastas recursivamente no caminho atual.mirror
, para o diretório atual e suas subpastas.Se você pode usar em
scp
vez deftp
, a-r
opção fará isso por você. Gostaria de verificar se você pode usar um mecanismo de transferência de arquivos mais moderno que o FTP.fonte
scp
ainda tentará usar ssh, o que não funcionará se você tiver apenas credenciais de FTP. Sente estranho responder a um comentário a partir de 2008 dizendo que a tecnologia que eu estou preso com não é moderno :( bom e velho 2008, completou 18 anos no dia que você postou seu comentário.Use WGet em vez disso. Ele suporta protocolos HTTP e FTP.
Boa sorte!
referência: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
fonte
Existe o 'ncftp' que está disponível para instalação no linux. Isso funciona no protocolo FTP e pode ser usado para baixar arquivos e pastas recursivamente. trabalha no linux. Foi usado e está funcionando bem para transferência recursiva de pastas / arquivos.
Verifique este link ... http://www.ncftp.com/
fonte
Se você puder, eu sugiro fortemente que você
tar
ebzip
(ougzip
, seja qual for o seu barco flutua) o diretório no controle remoto máquina para um diretório de qualquer tamanho significativo, a economia de largura de banda será provavelmente vale o tempo para zip / unzip.fonte
Se você deseja manter o FTP da linha de comando, tente o NcFTP. Em seguida, você pode usar get -R para obter recursivamente uma pasta. Você também receberá a conclusão.
fonte
wget -r ftp://url
Funciona perfeitamente para Redhat e Ubuntu
fonte
Você não deve usar
ftp
. Comotelnet
se não estivesse usando protocolos seguros, e as senhas são transmitidas em texto não criptografado. Isso facilita a captura de seu nome de usuário e senha por terceiros.Para copiar diretórios remotos remotamente, essas opções são melhores:
rsync
é a ferramenta mais adequada se você puder fazer login viassh
, porque copia apenas as diferenças e pode reiniciar facilmente no meio, caso a conexão seja interrompida.ssh -r
é a segunda melhor opção para copiar recursivamente as estruturas de diretório.Vejo:
página de manual rsync
página de manual do ssh
fonte
alterne o prompt pelo comando PROMPT.
Uso:
fonte