假设我在一个位置有一个包含数百个URL的文本文件,例如
http://url/file_to_download1.gz
http://url/file_to_download2.gz
http://url/file_to_download3.gz
http://url/file_to_download4.gz
http://url/file_to_download5.gz
....
使用wget
下载每个文件的正确方法是什么?我怀疑有一个像wget -flag -flag text_file.txt
答案 0 :(得分:71)
快速man wget
给了我以下内容:
[..]
-i 文件
- 输入文件= 文件
从本地或外部文件中读取URL。如果 - 指定为文件,则从标准输入读取URL。 (使用./-从字面上命名的文件中读取 - 。)
如果使用此功能,则命令行上不需要存在URL。如果命令行和输入文件中都有URL,那么命令行上的URL将是第一个要检索的URL。如果未指定--force-html,则文件应包含一系列URL,每行一个。
[..]
所以:wget -i text_file.txt
答案 1 :(得分:14)
尝试:
wget -i text_file.txt
(检查男人wget)
答案 2 :(得分:4)
如果您还想保留原始文件名,请尝试:
wget --content-disposition --trust-server-names -i list_of_urls.txt
答案 3 :(得分:0)
如果您使用的是 OpenWrt ,或者使用的wget的旧版本无法为您提供-i
选项:
#!/bin/bash
input="text_file.txt"
while IFS= read -r line
do
wget $line
done < "$input"
此外,如果您没有wget
,则可以使用curl
或任何用于下载单个文件的东西。
答案 4 :(得分:0)
与
并行运行cat text_file.txt | parallel --gnu "wget {}"