繁体   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