2011-04-11 17:59:58 +0000 2011-04-11 17:59:58 +0000
30
30

Posso carregar uma pasta inteira usando FTP?

Preciso de carregar uma pasta completa usando FTP. Existe alguma opção para transferir uma pasta e todo o seu conteúdo de uma só vez?

回答 (11)

24
24
24
2014-04-22 10:20:57 +0000

Pode usar o ncftpput. Faça o seguinte:

  1. instalar ncftp:

yum é minúsculo.

Em alternativa:

apt-get install ncftp
  1. Executar o seguinte comando:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Se estiver a utilizar um cliente ftp de linha de comando padrão, o comando MPUT permitir-lhe-á transferir todos os ficheiros que correspondam a um padrão (shell glob-style), pelo que MPUT * enviará todos os ficheiros do directório actual. Há também MGET para recuperar ficheiros que correspondam a um padrão.

Por defeito, tanto MPUT como MGET irão solicitar a transferência de cada ficheiro antes de o fazer. É provável que queira desligar a solicitação com o comando “PROMPT” (sem argumento; é uma alternância).

8
8
8
2011-04-12 13:45:04 +0000

Utilizar um cliente FTP como LeechFTP ou FileZilla ou algo semelhante. Muitas pessoas juram por CuteFTP, mas é shareware da última vez que verifiquei. Todos apoiam a transferência de uma pasta inteira, incluindo a estrutura de directórios.

5
5
5
2011-04-11 18:03:23 +0000
  1. fazer o utilizador/cliente zipar a pasta
  2. carregar o ficheiro zip
  3. descompactar o lado do servidor de pastas .
2
2
2
2017-01-31 18:48:31 +0000

Vou oferecer uma resposta que - embora seja pura força bruta e não elegante ao mínimo - foi a única coisa que funcionou para mim na linha de comando. Criei uma lista dos ficheiros, e coloquei-os num guião:

gere a sua lista de ficheiros:

find my-dir -exec echo "put /Users/username/"{} {} \;

copiá-los e colá-los no guião:

#!/bin/bash

hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password

binary
cd 123456
{COPY THE LIST HERE}
quit
EOF
2
2
2
2014-11-18 18:33:31 +0000

Um simples tutorial para outros novatos do Windows como eu que acabam aqui:

A forma mais fácil de carregar uma pasta inteira (com todas as subpastas e ficheiros nelas) é:

  1. Descarregar Cliente NcFTP (é gratuito, mas pode doar) a partir deste link .
  2. Escolha NcFTP Client 3.2.5 para Microsoft Windows a partir da lista.
  3. Instale-o.
  4. Quando estiver feito, uma pequena janela CMD com um ícone de cerejas irá aparecer. Não é necessário.
  5. Basta abrir uma janela CMD padrão e digitar: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (como uma linha).

Note que:

  • -R é uma bandeira para “recursiva”; faz o comando copiar todas as subpastas recursivamente
  • / (slash) é o directório raiz do seu website
  • C:\yourFolderDirectoryHere\* selecciona tudo dentro C:\yourFolderDirectoryHere.
1
1
1
2011-04-11 18:03:48 +0000

Verifique isto .

Também pode programmaticamente criar uma pasta no servidor , e depois carregar todos os ficheiros para essa nova pasta.

0
0
0
2016-06-15 04:20:22 +0000

O dir alvo é um ficheiro zip. Pode copiar o ficheiro zip completo para o servidor ftp usando o código abaixo.

//Taking source and target directory path
string sourceDir = FilePath + "Files\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\ConfigurationFile\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\XmlFile";

string targetDir = FilePath + "Files\Customers\" + CustomerName + "\" + SystemName + "\";                                                                                       
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
    //Taking file name which is going to copy from the sourcefile                                              
    string result = System.IO.Path.GetFileName(srcPath);

    //If that filename exists in the target path
    if (File.Exists(targetDir + result))
    {
        //Copy file with a different name(appending "Con_" infront of the original filename)
        System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
    }
    //If not existing filename
    else
    {
        //Just copy. Replace bit is false here. So there is no overwiting.
        File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
    }
}
0
0
0
2011-04-12 14:20:35 +0000

Firefox tem um plug-in chamado FireFtp que é um bom cliente de ftp.

0
0
0
2011-04-12 13:50:02 +0000

FileZilla é óptimo para isto. Se não quiser descarregar/instalar nada, isto pode ser feito com o Internet Explorer. Vá para as opções avançadas, e seleccione Enable FTP folder view (outside of Internet Explorer). Depois pode apontar uma janela do explorer para o seu servidor FTP e arrastar e largar ficheiros e pastas entre janelas do explorer.

0
0
0
2017-03-25 15:21:50 +0000

A minha resposta é uma variação da resposta de @dgig ‘s.

Pode listar todos os ficheiros e guardá-los (incluindo o comando put) num ficheiro:

find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;

e depois utilizar sftp para processar o ficheiro:

sftp -C -b sftpbatchfile.txt name@server

-C é para compressão, -b é para ficheiro batch