linux - 下载多个文件,具有不同的最终名称

标签 linux macos bash curl console

好吧,我需要的相当简单。

我想通过 cURL 下载很多不同的文件(从特定服务器),并且希望将每个文件保存为磁盘上的特定新文件名。

是否有现有的方法(参数或其他)来实现这一目标?你会怎样做呢?

<小时/>

(如果有一个选项可以在文本文件中输入所有 URL-filename 对,每行一个,并让 cURL 来处理它,那就太理想了)

例如

http://www.somedomain.com/some-image-1.png  --> new-image-1.png
http://www.somedomain.com/another-image.png --> new-image-2.png
...

最佳答案

好吧,我自己想出了一个聪明的方法。

1) 创建一个文本文件,其中包含一对 URL(下载内容)和 Filename(如何将其保存到磁盘),以逗号 (,) 分隔,每行一个。并将其另存为input.txt

2) 使用以下简单的 BASH 脚本:

while read line; do
    IFS=',' read -ra PART <<< "$line";
    curl $PART[0] -o $PART[1];
done < input.txt
<小时/>

*尚未彻底测试它,但我认为它应该有效。

关于linux - 下载多个文件,具有不同的最终名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16539392/

相关文章:

php - windows上使用xampp,重写/var/www/

php - 如何通过 php 上的 ntlm 代理使用副本下载文件?

linux - 将 hash-sign-starting-string 参数传递给 shell 脚本

macos - Mac OS 上的 IntelliJ IDEA JDK 配置

android - Xamarin/Visual Studio Mac 空白表单项目错误

linux - 如何在 Linux 中获取文件的最后一行前 2 个字符

linux - DPDK 应用程序停止后无法修改大页面大小

objective-c - 使用 replaceSubview :with: 时 subview 不显示

macos - 如何在 mac os x 系统中静默安装 dmg 文件(使用 shell 脚本)?

bash - 用于列出给定目录中的文件以及它们是文件还是目录的 Shell 脚本