需要命令行程序下载所有 http:// https:// scp:// ftp:// 样式链接(例如 ubuntu)

需要命令行程序下载所有 http:// https:// scp:// ftp:// 样式链接(例如 ubuntu)

我正在编写一个 perl 程序,我想从用户那里接受各种“文件名”,包括/home/foo/bar.txtscp://server/some/file.txt或其他什么。然后我想,如果我能找到一个 cmd 行程序来执行此操作,我会找到一个也能执行此操作的 perl 模块,或者我将通过 perl 的system()调用来运行它。

我想到了 cURL 和/或 lftp,但在 ubuntu 上,我得到:

> 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

对于curl,我调查了为什么它出现在Ubuntu上并发现curl 和 pycurl 编译时不支持 sftp- 基本上是这样不会发生除非我重新编译 libcurl*,但我不想要求我的用户对 libcurl* 应用补丁。

当然,我可以自己写,如下所示:

if ($proto eq 'scp') {
    # handle scp
    open I, 'scp ...' or die;
} elsif ($proto eq 'http') {
    open I, 'wget ...' or die;
} else {
    # whatever
}

但我更希望其他人用大量协议来编写/测试/调试它,我很惊讶我找不到任何开箱即用的东西!你知道我错过了什么吗?

答案1

我相信协议名称是 sftp,而不是 scp。

在我的系统中,以下工作正常:lftp -c 'get sftp://someserver/file',以及 ftp 和 http。

相关内容