모든 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를 생각했지만 우분투에서는 다음을 얻습니다.

> 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

컬의 경우 우분투에 왜 나타나는지 조사한 결과컬 및 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도 잘 작동합니다 .

관련 정보