使用 wget 下载多个文件并处理参数

使用 wget 下载多个文件并处理参数

如何使用 wget 下载多个文件?我还想重命名这些文件。以下是我逐个运行的命令(在终端上复制/粘贴):

    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720774/PS11.rar -O part11.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812721094/PS12.rar -O part12.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720804/PS13.rar -O part13.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720854/PS14.rar -O part14.rar
........ and so on..

我该怎么做才能逐个下载所有这些文件?

答案1

你可能想要一个像这样的简短的 shell 脚本:

#!/usr/bin/env bash
while read line
do
  wget -c --load-cookies cookies.txt $line -O ${line##*/}
done < filelist

其中filelist是一个包含每个下载链接的文本文件,逐一包含。${line##*/}将提取文件名本身,从而生成类似于以下命令的内容:

wget -c --load-cookies cookies.txt http://download/file1.rar -O file1.rar
wget -c --load-cookies cookies.txt http://download/file2.rar -O file2.rar
wget -c --load-cookies cookies.txt http://download/file3.rar -O file3.rar

如果您想要并行运行这些代码,您也可以将该wget行括在括号内以在子 shell 中运行它。

(wget -c --load-cookies cookies.txt $line -O ${line##*/})

或者添加一个 & 符号。但是这意味着当您取消脚本时下载仍会运行。您必须手动终止每个进程。

wget -c --load-cookies cookies.txt $line -O ${line##*/} &

相关内容