download-list.txt
我有一个如下所示的文本文件:
http://www.example.com/file/image1.png
http://www.example.com/file/image2.png
http://www.example.com/file/image3.png
.
.
.
要下载列表中的文件,我运行
wget -i download-list.txt
是否有一个 wget 魔法可以使用,而不需要我制作这样的列表?
答案1
如果你正在使用一个相当现代的 bash,那么你可以使用 shell 扩展,如下所示:
wget http://www.example.com/file/image{1..99}.png
上面的命令会尝试一直到达image1.png
。image99.png
显然,请根据需要选择范围。不存在的文件会抛出错误,但不会导致实际问题。如果您愿意,可以使用某些 wget 选项或通过将 STDERR 重定向到 /dev/null 来抑制错误:
wget http://www.example.com/file/image{1..99}.png 2> /dev/null
对于真正大量的文件,您可能会遇到命令行的限制 - 命令行上可以有的最大参数数量。您不太可能遇到这个问题,但如果您要处理大量文件,for 循环可能更安全:
for f in {1..1000}; do wget http://www.example.com/file/image$f.png; done
## and the version sending STDERR to /dev/null:
for f in {1..1000}; do wget http://www.example.com/file/image$f.png 2> /dev/null; done