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