scp를 사용하여 jar 파일의 내용을 추출하여 컬링

scp를 사용하여 jar 파일의 내용을 추출하여 컬링

상자에 javadoc 트리가 포함된 jar 파일이 있습니다. 나는 그것을 다른 상자로 옮기고 특정 디렉토리(존재하지 않을 수도 있음)에 항아리를 추출해야 합니다.

원격 상자에 로그인하는 데 사용하려는 주체의 사용자 이름/비밀번호가 있지만 사용할 SSH 키가 없습니다.

예상을 사용하여 이 작업을 수행할 수 있지만, 컬을 사용하여 완전히 수행할 수 있는지 확인하고 싶습니다. 다음과 같은 명령을 사용하여 jar 파일을 원격 상자로 성공적으로 전송했습니다.

curl -k -T file.jar -u user:password scp://host/path/file.jar

요구 사항 중 더 어려운 부분은 항아리의 포장을 풀거나 stdout을 통해 소스에서 파이프를 통해 원격으로 압축을 푸는 것입니다. 이를 위해 다음을 시도했습니다.

gzip -c file.jar | curl -k -T - -u user:password scp://host/path/stuff

이 작업은 "curl: (25) SCP에 업로드하려면 알려진 파일 크기가 필요합니다."와 함께 실패합니다.

이 모든 것이 작동하도록 하려면 완전한 "예측" 구현을 수행해야 합니까? 나는 컬이 존재하지 않는 경우 대상 디렉토리를 생성할 수 있는지 여부조차 고려하지 않았습니다.

답변1

나는 똑같은 문제를 경험했습니다. 정확한 이유는 모르지만 scp를 통한 컬은 전체 파일만 복사할 수 있으며 크기를 알고 있습니다. scp 자체의 제한일 수도 있습니다.

해결책은 매우 간단합니다. 프로토콜을 scp에서 sftp로 변경하면 제대로 작동합니다.

gzip -c file.jar | curl -k -T - -u user:password sftp://host/path/stuff

관련 정보