[英]consecutive numbered files download with wget bash with option to skip some files during download
有一個主頁可以下載從1到10000的zip文件。此刻,我正在使用以下命令下載它們:
$ wget http://someaddress.com/somefolder/{001..10000}
我不需要所有這些文件,但是所需zip文件的順序沒有邏輯。 我只能看到下載開始后是否需要它。 不必要的文件比其他文件大很多,這增加了下載時間,因此,如果我可以跳過它們,那就太好了。 bash中有任何方法可以做到這一點嗎?
您可以使用帶有選項--max-filesize
curl
,並且不會下載大於此--max-filesize
文件。 但是,這取決於您的網站返回帶有Content-Length
標頭的正確大小。 您可以在文件上使用wget -S
檢查標頭,以查看是否提供了標頭。 curl
不會執行網址格式,因此您必須為每個網址編寫一個for
循環的外殼for
。
另外,堅持使用wget並假設您沒有Content-Length
,當收到太多數據時,您可以強制執行SIGPIPE。 例如,
wget http://someaddress.com/somefolder/1234 -O - |
dd bs=1k count=2 >/tmp/1234
這使wget
可以將downlaod傳遞給dd
命令,該命令將把數據復制到最終文件,但是在2個1024字節的塊之后停止。 如果接收到的數據較少,則該文件將包含您想要的全部。 如果接收到更多數據,則dd將停止,並且當wget向管道中寫入更多數據時,它將被信號停止。
您需要編寫一個循環來為每個網址執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.