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.

Tomas Aschan
fonte

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)

Martin Prikryl
fonte
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
0

sftp O protocolo não possui comandos para copiar arquivos no servidor remoto. Vejo página de manual para sftp para listar os comandos disponíveis.

Jakuje
fonte
-1

Você pode usar os comandos FTP como

sftp> put baz.txt /foo/bar/baz.txt
Nicolas Perraut
fonte
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