下载文件或解压缩文件时,时间戳未设置为文件出现在我的硬盘上的时间,这正是我想要的。
看这个例子
~$ wget https://www.google.com/images/srpr/logo3w.png
~$ stat logo3w.png
File: `logo3w.png'
Size: 7007 Blocks: 16 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17040834 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ ss) Gid: ( 1000/ ss)
Access: 2012-07-25 10:58:26.000000000 +0200
Modify: 2012-04-02 04:13:37.000000000 +0200
Change: 2012-07-25 10:58:26.254385152 +0200
Birth: -
~$ ll logo3w.png
-rw-rw-r-- 1 ss ss 7007 Apr 2 04:13 logo3w.png
Run Code Online (Sandbox Code Playgroud)
这种行为是“新的”,并且发生在过去几年内。
题
是否可以禁用此功能,因此当文件写入磁盘时,它会在我执行此操作时获得时间戳?
从 wget 手册页:
--no-use-server-timestamps不要通过服务器上的时间戳设置本地文件的时间戳。
默认情况下,下载文件时,其时间戳设置为与来自远程文件的时间戳相匹配。这允许
--timestamping在 的后续调用中使用wget。但是,有时将本地文件的时间戳基于实际下载时间是有用的;为此目的,提供了这个--no-use-server-timestamps选项。
unzip还可以-DD选择跳过恢复提取项目的时间戳。
来自man unzip:
-D跳过恢复提取项目的时间戳。
通常,解压缩会尝试恢复 Zip 存档中提供的提取项目的所有元信息(并且不需要特权或施加安全风险)。
通过指定
-D,unzip被告知禁止恢复从 Zip 存档条目显式创建的目录的时间戳。[...]重复选项
-DD强制抑制所有提取条目(文件和目录)的时间戳恢复。此选项导致将所有提取条目的时间戳设置为当前时间。