假设我有一堆这样的 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 创建子目录并将文件下载到该子目录中,这样您就可以在每个子目录中处理一个文件(简单来告诉您需要处理哪一个),然后您可以移动并重命名它,同时保留扩展名。