すべてのhttp:// https:// scp:// ftp://スタイルリンク(ubuntuなど)をダウンロードするには、コマンドラインプログラムが必要です。

すべてのhttp:// https:// scp:// ftp://スタイルリンク(ubuntuなど)をダウンロードするには、コマンドラインプログラムが必要です。

/home/foo/bar.txt私はPerlプログラムを書いており、ユーザーからやscp://server/some/file.txtなどを含むさまざまな「ファイル名」を受け入れたいと思います。その後、これを実行するcmdラインプログラムを見つけることができれば、これも実行するPerlモジュールを見つけるか、system()Perl呼び出しを介して実行すると思いました。

私は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

カールの場合、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

プロトコル名はscpではなくsftpだと思います。

lftp -c 'get sftp://someserver/file'私のシステムでは、ftpとhttpもうまく機能します。

おすすめ記事