Copiar arquivo no SFTP para outro diretório sem ida e volta


0

Eu tentei isso, mas é claro que não funciona:

sftp> cp baz.txt foo/bar/
Invalid command.

Existe uma maneira de fazer isso com um sftp conexão?


Claro, eu percebo que isso é trivial se eu me conectar com ssh em vez de. No entanto, eu tenho um servidor sftp onde eu não posso fazer isso, desde ssh -ing me dá um diretório de inicialização diferente, e não tenho poder (nem mesmo conhecimento) dos caminhos absolutos no controle remoto; Eu preciso de tudo para trabalhar em relação ao diretório de inicialização quando me conecto com sftp.

Respostas:


6

Um protocolo SFTP principal não suporta a duplicação de um arquivo remoto.

Há rascunho do copy-file extensão ao protocolo , mas isso é suportado por apenas alguns servidores SFTP ( ProFTPD / mod_sftp servidor Bitvise SFTP, por exemplo) e alguns clientes SFTP ( WinSCP por exemplo).

Definitivamente não é suportado pelo servidor OpenSSH SFTP mais difundido. Nem pelo cliente OpenSSH SFTP ( sftp ), ou seja, não há cp comando ou qualquer outro funcionalmente equivalente.


Alternativas (que você parece saber e não irá ajudá-lo):

  • Se você tiver acesso SSH / terminal ao servidor, use o Concha cp comando .
  • Se o seu servidor SFTP suportar o copy-file extensão, use um cliente SFTP que suporte também.
  • Caso contrário, sua única opção é baixar o arquivo para um local temporário local e carregar sua cópia de volta para um diretório remoto diferente / de destino.
    Alguns clientes de SFTP podem fazer isso para você de forma transparente de uma só vez (por exemplo, no WinSCP, consulte Duplicar via cópia temporária local opção em Diálogo duplicado ).

(Eu sou o autor do WinSCP)


Como o controle remoto é hospedado por uma empresa externa e não temos participação em quais softwares eles usam, não posso confiar em nada, exceto no protocolo padrão. Os arquivos são bem pequenos, então eu vou viver com a deselegância de baixar e fazer o upload novamente.
Tomas Aschan


-1

Você pode usar os comandos FTP como

sftp> put baz.txt /foo/bar/baz.txt

1
não é isso que o OP quer. Isso copia de local para remoto, mas a questão é sobre remoto para remoto, se eu entendi direito.
Jakuje

Por favor, leia a questão novamente com cuidado. Sua resposta não não responda a pergunta original.
DavidPostill

Você está certo, eu perdi alguma coisa
Nicolas Perraut
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.