2015-10-18 49 views
4

答案Skip download if files exist in wget?說使用-nc,或​​,但-nc不會阻止文件的HTTP請求和後續下載的發送。如果文件已被完全檢索,那麼在下載文件後它不會執行任何操作。無論如何阻止如果文件已經存在的HTTP請求?Wget的:跳過下載,如果文件已經存在?

我安裝wget 1.16.3 with Homebrew。運行下面的命令後,wget說的一樣making HTTP request對於已經存在的每個文件,出現下載它,然後說是這樣的:file already retrieved, nothing to do

wget --user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12' \ 
    --tries=1 \ 
    --no-clobber \ 
    --continue \ 
    --wait=0.3 \ 
    --random-wait \ 
    --adjust-extension \ 
    --load-cookies cookies.txt \ 
    --save-cookies cookies.txt \ 
    --keep-session-cookies \ 
     --recursive \ 
     --level=inf \ 
     --convert-links \ 
     --page-requisites \ 
     --reject=edit,logout,rate \ 
     --domains=example.com,s3.amazonaws.com \ 
     --span-hosts \ 
     --exclude-directories=/admin \ 
    http://example.com/ 
+0

事實上,它沒有做任何要求,甚至沒有一個頭,例如比較大小。試試吧和/或讀取源:http://git.savannah.gnu.org/cgit/wget.git/tree/src/main.c?id=v1.16.3#n1328 – plundra

回答

2

您似乎在使用不兼容的選項,我得到的wget 1.16 Linux的以下警告:

$ wget --no-clobber --convert-links http://example.com 
Both --no-clobber and --convert-links were specified, only --convert-links will be used. 
1

-nc選項確實你問什麼,至少在1.19.1的wget 。


我的服務器上,我有一個名爲index.html文件,它包含鏈接到a.htmlb.html

$ wget -r -nc http://127.0.0.1:8000/ 

服務器日誌顯示此:

127.0.0.1 - - [23/Mar/2017 17:51:25] "GET/HTTP/1.1" 200 - 
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /robots.txt HTTP/1.1" 404 - 
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /a.html HTTP/1.1" 200 - 
127.0.0.1 - - [23/Mar/2017 17:51:25] "GET /b.html HTTP/1.1" 200 - 

現在我刪除b.html並重新運行:

$ rm 127.0.0.1\:8000/b.html 
$ wget -r -nc http://127.0.0.1:8000/ 

服務器日誌顯示此:

127.0.0.1 - - [23/Mar/2017 17:51:38] "GET /robots.txt HTTP/1.1" 404 - 
127.0.0.1 - - [23/Mar/2017 17:51:38] "GET /b.html HTTP/1.1" 200 - 

,你可以只看到一個請求[R b.html製成。

相關問題