使用 wget 下载网站图片时,能不能保留原始时间属性?
在整理旧网站、备份博客图片、迁移 WordPress 站点素材时,经常会遇到一个问题:用命令行下载图片以后,本地文件的时间会不会变成“下载时间”?有没有办法尽量保留图片原来的时间属性? 答案是:可以,但要看你说的“原始时间”具体指什么。 对于 wget 来说,它能够保留的主要是服务器返回的文件修改时间,也就是 HTTP 响应头里的 Last-Modified 时间。只要服务器正确提供这个时间,wget 就可以把本地文件的修改时间设置成服务器上的时间。 但是,wget 并不能保证恢复图片真正的拍摄时间,也不能保证恢复 WordPress 后台里的上传时间。它只是尽量保留“远程文件的修改时间”。 一、最核心的参数:-N wget 中和时间戳有关的核心参数是: -N 是 –timestamping 的简写,意思是启用时间戳检查。 例如下载一张图片: 如果服务器返回了这张图片的 Last-Modified 信息,wget 下载后会把本地文件的修改时间设置成这个远程时间,而不是单纯使用当前下载时间。 二、批量下载图片时也可以保留时间 如果有一个图片地址列表,例如 urls.txt: 可以这样批量下载: 这里: 表示保留远程时间戳; 表示从 urls.txt 文件中读取下载地址。 这是比较干净、稳定的批量下载方式,适合先从网页或 WordPress 媒体库中提取图片地址,再统一下载。 三、下载整个页面中的图片 如果只是想下载某个网页中用到的图片,可以使用: 这条命令的含义是: 例如: 这样会把页面中引用到的图片下载下来,并尽量保留远程文件时间。 不过这种方式有一个缺点:它下载的是“页面需要显示的资源”,不一定只包含你想要的原图。有些网站会引用 logo、背景图、按钮图、缩略图等,这些也可能一起被下载下来。 四、WordPress 图片需要注意缩略图问题 WordPress …