2013-01-13 133 views
49

要我用wget命令服務器下載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重命名下載的文件?

更新 - 08年1月'15

隨着所提供的鏈接下載的文件始終是.tar.gz之一*。要使用實名得到它只需添加--content-disposition選項,因爲這(感謝@ 6EQUJ5!):

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

但我需要一個* .deb文件,所以在這裏是正確的@creaktive,我不得不尋找爲* .deb文件鏈接。

感謝所有的答案!

+2

如果dpkg的說,它_really_不是Debian包...這是什麼'file'說? – fge

+0

您提到的URL是一個HTML頁面。 –

+0

我認爲你接受了錯誤的答案。 – user83039

回答

1

即鏈接指向一個重定向器,而不是最終的目的地!所以你要下載HTML並將其重命名爲.deb。雜亂的頁面有這個頂部:

您的下載將開始在0秒... 下載的問題?請使用direct link,或嘗試其它mirror

現在,是一個有效的鏈接(注意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

通過這個網址wget。 另外,還要注意SourceForge上試圖智取你,通過用戶代理字符串的客串業務系統。 「wget」的最佳猜測似乎是.tar.gz包。所以,你應該更具體,請求deb文件!

+0

這個軟件有一個.tar.gz版本:http://sourceforge.net/projects/sofastatistics/files/sofastatistics/1.3.1/確保你選擇.deb鏈接! – creaktive

59

標準輸出的重定向到任意文件名總是工作。你是做正確的人的wget說,使用-O

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(通常可以用男子文件檢查)。

[編輯]

在你的情況下客戶端接收302找到(你可以用捲曲-v URL檢查)。

下捲曲通過尊重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重定向。

14

如果你是做從Web瀏覽器相同的下載,並且您會注意到瀏覽器實際正確命名的文件,你可以使用--content-disposition選項給wget的相同的行爲:

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

我的Debian手冊頁報告,這是一個「實驗性」的特徵,但我不能記得它不是爲我工作:

 --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.