Eu acredito que o nome do protocolo seja sftp, não scp.
No meu sistema, os seguintes trabalhos: lftp -c 'get sftp://someserver/file'
, bem como ftp e http.
Estou escrevendo um programa perl no qual desejo aceitar todos os tipos de "nomes de arquivos" do usuário, incluindo /home/foo/bar.txt
e scp://server/some/file.txt
ou o que for. E então eu pensei que se eu pudesse encontrar um programa de linha cmd que faz isso, eu vou encontrar um módulo perl que faz isso também, ou eu vou apenas executá-lo através da chamada system()
do perl.
Eu pensei em cURL e / ou lftp, mas no Ubuntu eu recebo:
> curl scp://server/some/file
curl: (1) Protocol scp not supported or disabled in libcurl
> lftp -c 'get scp://server/some/file'
get: scp - not supported protocol
Para curl eu investiguei porque isso estava no Ubuntu e encontrei curl e pycurl não é compilado com sftp suporte - basicamente isso não vai acontecer a menos que eu recompile libcurl *, mas eu não quero exigir que meus usuários apliquem um patch ao libcurl *.
Claro, posso escrevê-lo como em:
if ($proto eq 'scp') {
# handle scp
open I, 'scp ...' or die;
} elsif ($proto eq 'http') {
open I, 'wget ...' or die;
} else {
# whatever
}
Mas eu prefiro que mais alguém escreva / teste / depure isso com uma lista enorme de protocolos e estou surpreso que não consegui encontrar nada que faça isso pronto! Você sabe de algum que eu perdi?
Tags command-line scp ftp perl http