假设有一个 ftp 站点,里面有一堆我想下载的文件 -ftp://ftp.example.com,并且它们允许通过 FTP 进行“匿名登录”。
file1.zip,
file2.zip,
... ,
file100.zip
另外假设我有一个文件路径列表,我想将所有文件路径下载到 bash 变量中,如下所示:
paths="ftp://ftp.example.com/file1.zip ftp://ftp.example.com/file7.zip"
有没有办法做到wget $paths
(即下载我的两个文件的列表)而不必看到 wget 对每个文件执行的操作:
Connecting to ftp.example.com|10.10.10.10|:21... connected.
Logging in as anonymous ... Logged In!
对于我下载的每个文件,wget 都会在哪里登录到该网站进行一次身份验证?
答案1
或者,您可以使用普通的旧 ftp。在您的~/.netrc
文件中设置 ftp.example.com 的节:
machine ftp.example.com
login ftp
password anonymous
...确保其他人无法读取该文件:
chmod 600 ~/.netrc
然后ftp
通过此处文档发送命令来检索文件:
ftp ftp.example.com <<'EOF'
prompt
mget file*.zip
bye
EOF
某些 ftp 客户端可能支持-i
禁用提示的选项mget
,从而无需使用prompt
列表中的命令。
使用此选项将为所有文件传输建立一个 ftp 会话。
答案2
我想你想要第 9 条提示这一页。
基本上,使用 wget -i 下载多个文件,
$ cat > download-file-list.txt
URL1
URL2
URL3
URL4
$ wget-i download-file-list.txt