wget:: 如何将所有已下载的文件重命名为 wget --content-disposition 给出的名称?
Posted
技术标签:
【中文标题】wget:: 如何将所有已下载的文件重命名为 wget --content-disposition 给出的名称?【英文标题】:wget:: How to rename all the already dowloaded files as name given by wget --content-dispostion? 【发布时间】:2014-08-31 19:24:24 【问题描述】:我已经使用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
创建的,它是服务器上的原始名称,上传者的文件名)。我希望将所有文件命名为它们的原始名称,而无需再次下载它们。
【问题讨论】:
可以肯定的是,您知道 sed 和正则表达式吗?你可以重命名所有文件并节省一些时间 我知道正则表达式,我会在实施时尝试学习 sed。但是,如果您了解如何在不下载文件的情况下从服务器检索文件名,那将会很有帮助。 可能是一个误解,但我认为您想摆脱“-”之前文件名中的所有内容 - 那么这可能会有所帮助:***.com/questions/16201134/… 演示链接有答案。 是的,有点误会,我已经对我的问题进行了编辑,看看。原文件名完全不一样,光看链接是不知道的。 如果网络服务器支持 HEAD 请求,你可以使用 wget --server-response --spider $URL 之类的命令,否则你可以使用 0-1 范围仅获取一个字节。得到响应后,您可以编写一个脚本来重命名。 【参考方案1】:如果网络服务器支持 HEAD 请求,你可以使用wget --server-response --spider $URL
之类的命令,否则你可以使用范围 0-1 只获取一个字节。获得响应后,您可以编写脚本来重命名。 ——吴永正
【讨论】:
以上是关于wget:: 如何将所有已下载的文件重命名为 wget --content-disposition 给出的名称?的主要内容,如果未能解决你的问题,请参考以下文章