Precisa de um programa de linha de comando para fazer o download de todos os links de estilo http: // https: // scp: // ftp: // (por exemplo, no ubuntu)

1

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?

    
por Peter V. Mørch 10.06.2011 / 09:18

1 resposta

2

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.

    
por 10.06.2011 / 09:32