如何使用 curl 和 xargs 下载存储在文本文件中的多个文件?

如何使用 curl 和 xargs 下载存储在文本文件中的多个文件?

如何使用 curl 和 xargs 下载存储在文本文件中的多个文件?这是我的最后一次尝试:

cat listfile.txt | xargs curl -O

第一个文件运行良好,但其他文件只是输出到标准输出。

答案1

使用 GNU Parallelhttp://www.gnu.org/software/parallel/你可以做:

cat listfile.txt | parallel curl -O

GNU Parallel 不仅可以很好地处理诸如“”和空格之类的特殊字符,还可以获得并行下载的额外好处。

观看 GNU Parallel 的介绍视频:http://www.youtube.com/watch?v=OpaiGYxkSuQ

答案2

我找到了解决方案:

cat ./../c | xargs -n1 curl -O

xargs 用空格和换行符分割 stdin,并立即传递给 curl。因此 curl 仅使用长参数调用一次。

n1选项将此传递参数数限制为 1,因此 curl 将被调用多次。

答案3

xargs 不知道 curl 是什么,所以它无法确定一轮中应该传递多少个参数。所以解决方案是向它传递一个 -n1 选项,正如您提到的那样。

相关内容