sftp: carrega todos os arquivos, diretórios e subdiretórios contidos em uma pasta

25

Na máquina A eu tenho a pasta

/home/a/

Na máquina B eu tenho a pasta

/home/b/

Eu desejo transferir todos os arquivos, diretórios e subdiretórios de / home / a em / home / b com sftp Na máquina A eu tentei os comandos:

sftp [email protected]
put /home/a/* /home/b/

mas não funciona, recebo a mensagem de erro: "ignorando o arquivo não-regular / home / a / a1" ... [a1 é um subdiretório de a]
Como eu poderia modificar a instrução put?

Obrigado! :)

EDIT:

Eu resolvi usar o scp:

scp -r /home/a/ [email protected]:/home/b/
    
por fibon82 08.02.2012 / 14:15

6 respostas

20

Embora não seja estritamente equivalente ao sftp, o rsync é uma alternativa muito poderosa para o scp e o sftp, especialmente ao atualizar as cópias da máquina A para a máquina B, já que ela não copia os arquivos que não foram alterados; também é capaz de remover arquivos da máquina B que foram apagados da máquina A (somente quando isso for dito, é claro).

No seu caso, a sintaxe seria

rsync -zrp /home/a/ [email protected]:/home/b/

A opção -r é para cópia recursiva de arquivos, -z ativa a compactação durante a transferência e -p preserva as permissões do arquivo (criação, edição de arquivos etc.) ao copiar, que é algo que o scp não faz t fazer AFAIK. Muitas outras opções são possíveis; como de costume, leia as man páginas.

    
por 08.02.2012 / 23:41
13

Em sftp , esse comando faz o upload recursivo do conteúdo do diretório atual para o diretório atual remoto:

 put -r .

Veja man sftp .

    
por 02.10.2014 / 22:33
9

scp (cópia segura) é o Linux de fato para transferir arquivos através de um túnel seguro. No seu caso, você gostaria de usar a opção recursiva, por exemplo:

scp -r /home/a/ [email protected]:/home/b/
    
por 08.02.2012 / 17:04
3

Tente usar

put -r /home/a/ /home/b/

para mais informações, confira: this

    
por 04.01.2014 / 15:02
0

Na verdade, coloque -r deve funcionar. Mas a pasta de destino precisa estar presente no seu host remoto:

sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder
 Couldn't canonicalize: No such file or directory
 ....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder/sourcefolder
 Entering sourcefolder/
 sourcefolder/file1
 sourcefolder/file2
    
por 05.10.2017 / 15:53
-1

No meu caso rsync não foi possível, então usei:

mput -rp /home/a/ /home/b/
    
por 14.02.2014 / 11:10

Tags