簡體   English   中英

使用wget bash下載連續編號的文件,並可以選擇在下載過程中跳過一些文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM