다운로드 한 파일의 이름을 wget으로 바꾸는 방법은 무엇입니까?


80

서버에서 SOFA 통계를 다운로드하려면 wget 명령을 사용합니다.

wget -c http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp

이 경우 다운로드 한 파일의 파일 이름은 download?source=files. --output-document명령에 옵션을 추가하면 출력 파일의 이름을으로 변경하면 sofastatistics-latest.deb다운로드 한 파일의 형식이 dpkg 패키지에서 인식되지 않습니다.

dpkg-deb: error: `sofastatistics-latest.deb' is not a debian format archive

다운로드 한 파일의 이름을 wget으로 올바르게 바꾸는 방법은 무엇입니까?

업데이트 -Jan 08 '15

제공된 링크를 사용하면 다운로드 된 파일은 항상 * .tar.gz 파일이됩니다. 실제 이름으로 가져 오려면 다음과 같이 --content-disposition옵션을 추가하십시오 (@ 6EQUJ5 덕분입니다!).

wget --content-disposition http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp

하지만 * .deb 파일이 필요했기 때문에 @creaktive가 맞았고 * .deb 파일 링크를 검색해야했습니다.

모든 답변에 감사드립니다!


2
dpkg가 그렇게 말하면 정말 데비안 아카이브가 아닙니다 ... file뭐라고하나요?
fge

언급하신 URL은 HTML 페이지입니다.
Salman A

오답을 받아 들인 것 같습니다.
user83039 2015 년

@ user83039 틀리지 않고 부분적이지만 당신이 옳습니다.이 답변을 올바른 답변으로 받아들이지 않아야합니다.
Iurie Malai 2015 년

1
--trust-server-names내 용도에 더 적합 하다는 것을 알았습니다 . 이 중복 SO 질문Unix.SE에 대한 동일한 질문을 참조하십시오 .
Adam Katz

답변:


111

표준 출력을 임의의 파일 이름으로 리디렉션하는 것은 항상 작동합니다. -O를 사용하여 man wget이 말한 대로 올바르게 수행하고 있습니다.

wget http://www.kernel.org/pub/linux/kernel/README -O foo
--2013-01-13 18:59:44--  http://www.kernel.org/pub/linux/kernel/README
Resolving www.kernel.org... 149.20.4.69, 149.20.20.133
Connecting to www.kernel.org|149.20.4.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12056 (12K) [text/plain]
Saving to: `foo'

100%[======================================================================================================================================>] 12,056      --.-K/s   in 0.003s  

2013-01-13 18:59:45 (4.39 MB/s) - `foo' saved [12056/12056]

실제로 파일에 HTML이 있어야합니다 (보통 man file 로 확인할 수 있음 ).

[편집하다]

귀하의 경우 클라이언트가 302 Found를 수신 하고 있습니다 ( curl -v URL로 확인할 수 있음 ).

다음 curl은 3xx를 존중하여 트릭을 수행합니다.

$ curl -L http://sourceforge.net/projects/sofastatistics/files/latest/download?source=files -o foo.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   463    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100 2035k  100 2035k    0     0   390k      0  0:00:05  0:00:05 --:--:-- 1541k
$ file foo.deb 
foo.deb: gzip compressed data, was "sofastats-1.3.1.tar", last modified: Thu Jan 10 00:30:44 2013, max compression

wget 이 HTTP 리디렉션을 허용하는 유사한 옵션이 있어야합니다 .


23

웹 브라우저에서 동일한 다운로드를 수행하고 브라우저가 실제로 파일 이름을 올바르게 지정하는 것을 발견하면 --content-disposition옵션을 사용하여 wget에 동일한 동작을 제공 할 수 있습니다 .

wget --content-disposition http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp

내 데비안 맨 페이지에서 이것을 '실험적'기능으로보고하지만 저에게 작동하지 않는 것을 기억할 수 없습니다.

       --content-disposition
           If this is set to on, experimental (not fully-functional) support for "Content-Disposition" headers is enabled. This can currently result in extra round-trips to the server
           for a "HEAD" request, and is known to suffer from a few bugs, which is why it is not currently enabled by default.

           This option is useful for some file-downloading CGI programs that use "Content-Disposition" headers to describe what the name of a downloaded file should be.

1

이 링크는 최종 목적지가 아닌 리디렉터를 가리 킵니다! 따라서 HTML을 다운로드하고 이름을 .deb. 어수선한 페이지의 상단에는 다음이 있습니다.

다운로드가 0 초 후에 시작됩니다 ... 다운로드에 문제가 있습니까? 이 직접 링크 를 사용하거나 다른 미러를 시도하십시오 .

이제 유효한 링크 (음이다 download접두사) : http://downloads.sourceforge.net/project/sofastatistics/sofastatistics/1.3.1/sofastats-1.3.1-1_all.deb?r=http%3A%2F % 2Fsourceforge.net % 2Fprojects % 2Fsofastatistics % 2Ffiles % 2Fsofastatistics % 2F1.3.1 % 2F & ts = 1358119361 & use_mirror = ufpr

이 URL을에 전달하십시오 wget. 또한 SourceForge는 User-Agent 문자열을 통해 운영 체제를 게스트로 사용하여 사용자를 능가하려고합니다. "wget"에 대한 가장 좋은 추측은 .tar.gz 패키지 인 것 같습니다. 따라서 더 구체적으로 deb 파일을 요청해야합니다!


이 소프트웨어에 대한 .tar.gz 버전이 있습니다 : sourceforge.net/projects/sofastatistics/files/sofastatistics/… .deb 링크를 선택했는지 확인하십시오!
삐걱 거리는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.