curl 下载文件并命名。

curl 下载文件并命名。

假设我有一堆这样的 URL:

https://domain.com/foo/bar/2d9ec0354908e055acf372

从 URL 中我不知道扩展名是什么,并且没有任何其他“前端”信息来告诉我它是什么类型的文件。

但我确实知道前端文件的标题是什么。因此,我想在保存文件时硬编码一个标题,然后附加到实际文件具有的任何扩展名。因此,如果文件的标题是“File A of N”,我想将其称为“file-a-of-n”(我只是将其写出来)。那么我希望最终的结果是:

file-a-of-n.zip

或者无论扩展最终是什么。也许不是.zip这个特定的文件.tar.gz,所以它最终会是:

file-a-of-n.tar.gz

无论扩展名最终是什么,都可以,希望将其附加到文件中。但我不想要这个:

2d9ec0354908e055acf372.zip

所以想知道如何做到这一点。沿着以下方向卷曲的东西:

curl -o file-a-of-n.(extension) https://domain.com/foo/bar/2d9ec0354908e055acf372

最终结果将是一个如下文件:

file-a-of-n.zip

答案1

curl 不支持您直接尝试执行的操作,您可以向其传递一个新的文件名来存储结果,或者让它从 HTTP 标头确定文件名(可能还有扩展名)。

因此,您应该分两步完成此操作。我建议让curl 确定文件名,因此下载2d9ec0354908e055acf372.zip,然后您可以将其重命名为file-a-of-n.zip,保留其中的“.zip”部分。

为了使您的工作更轻松,请创建一个临时目录来工作,然后为 a-of-n 创建子目录并将文件下载到该子目录中,这样您就可以在每个子目录中处理一个文件(简单来告诉您需要处理哪一个),然后您可以移动并重命名它,同时保留扩展名。

相关内容