Command-Line

需要命令行程序來下載所有 http:// https:// scp:// ftp:// 樣式的連結(在例如 ubuntu 上)

  • June 10, 2011

我正在編寫一個 perl 程序,我想在其中接受來自使用者的各種“文件名”,包括/home/foo/bar.txtscp://server/some/file.txt或其他。然後我想如果我能找到一個 cmd line 程序來做這件事,我會找到一個 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
}

但是我更希望其他人使用大量協議來編寫/測試/調試它,我很驚訝我找不到任何開箱即用的東西!你知道我錯過了什麼嗎?

我相信協議名稱是 sftp,而不是 scp。

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

引用自:https://unix.stackexchange.com/questions/14735