Como os caras do OpenSSH disseram "O protocolo scp está desatualizado" , é hora de pensar nos dias pós-scp.
No entanto sftp
, parece ser projetado para operação interativa. Existe uma boa maneira de usar o sftp
comando como scp
? significa, como fazer isso em sftp
?
scp ./myfile myserver:/home/myfile
Ou algum bom scp
sucessor?
Desde o OpenSSH 8.7,
scp
pode usar o protocolo SFTP. Basta adicionar-s
interruptor:Desde o OpenSSH 9.0
scp
, ele usa SFTP por padrão.sftp
command é de fato construído em torno de comandos (comoftp
). Portanto, não pode funcionar como um substituto no local para arquivosscp
.Embora você possa usar one-liners como:
ou
Você pode querer adicionar
-b -
para forçar um modo não interativo.Curiosamente (como @Kamil mencionou), para downloads, você também pode usar esta
scp
sintaxe semelhante a:(o uso do segundo argumento não está documentado).
O uso de
sftp://
prefixo também é possível desde o OpenSSH 7.7, que modifica um pouco a sintaxe (permite a codificação de URL do nome de usuário e do caminho).Desde o OpenSSH 8.7,
scp
suporta o protocolo SFTP, via-s
parâmetro. E a próxima versão usará SFTP por padrão.pscp
Há também um cliente de linha de comando gratuito/código aberto que vem no pacote PuTTY, que está disponível para Linux (embora seja mais comumente usado no Windows). Ele possui uma interface de linha de comando idêntica ao OpenSSHscp
. Mas, ao contrário de seu nome escp
, é principalmente um cliente SFTP (embora possa retornar ao SCP, se o servidor não oferecer suporte a SFTP).Você pode instalar o PuTTY/pscp com
apt-get
:Há uma pergunta semelhante no Stack Overflow: sftp de linha única do terminal
Você também deve considerar o rsync. Exceto pela transferência remote1-para-remote2 que o scp permite, parece - a partir de uma leitura rápida de
man scp
qualquer maneira - que você pode fazer o rsync fazer tudo isso com bastante facilidade ou escrever um wrapper que não seja muito indolor.O Rsync tem outras vantagens que você obtém por padrão (ou seja, muito mais eficiente ao substituir um arquivo antigo), mesmo que você não use nenhuma de suas muitas opções.