linux - wget::如何将所有已下载的文件重命名为 wget --content-disposition 指定的名称?

标签 linux download wget

我使用 wget 下载了 1200 个 jpeg 文件。但文件的名称基于下载它们的链接。

例如。 http://www.*.*.*/index.php?id=0MwfTcqbP9dl1_icR3_gVezE8tlpUJt-wumA5hHjpjk 将下载名为 index.php?id=0MwfTcqbP9dl1_icR3_gVezE8tlpUJt-wumA5hHjpjk.jpg 的文件,但其名称位于服务器不同。现在我希望所有文件都以服务器上的名称命名。

一种方法是删除所有文件并使用 wget 选项 --content-dispostion 重新下载,但下载的总大小为 8GB,再次下载不是一个好的选择。

如何将所有下载的文件重命名为服务器上的名称?

编辑:使用 wget --content-disposition 或浏览器从链接下载的 jpeg 文件的名称将类似于 2014:08:09_18:07:51_IMG_5543.jpg (不是由 wget 创建的,它是服务器上的原始名称,上传者的文件名)。我希望所有文件都以其原始名称命名,而无需再次下载它们。

最佳答案

如果网络服务器支持 HEAD 请求,您可以使用 wget --server-response --spider $URL 等命令,否则您可以使用范围 0-1 来仅获取一个字节。获得响应标题后,您可以编写脚本来重命名。 ——吴永正

关于linux - wget::如何将所有已下载的文件重命名为 wget --content-disposition 指定的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595467/

相关文章:

php - 文件下载后网站无响应。我做错了什么?

wget - 如何中止wget?

curl - 使用 wget 或 curl 下载带有共享访问签名的 Azure Blob

Java Http(s)URLConnection java.io.IOException : Server returned HTTP response code: 403

linux - 为什么 64 位 Linux 进程的 VSIZE 大这么多?

c - busybox 是否以共享库形式提供?

ios - 如何在速度慢、连接性差的网络上下载大文件?

ubuntu - 当我不知道显式链接时如何通过终端下载文件?

linux - 仅启动了一个 screen

c - 存储的错误值和其他