我有一个 zip 文件,用作我的工作备份。-FS
每当我想更新备份文件时,我都会使用“刷新”选项 ( )。但是,该文件将上次修改的日期显示为我最初创建该文件的日期,而不是自我“刷新”该文件以来的多次修改日期。这是正常行为吗?
答案1
Unix 没有创建日期,因此当您更新这些文件时,.zip
您是根据其修改日期来更新它们,根据zip
手册页,这是正常行为。
摘抄
The new File Sync option (-FS) is also considered a new mode, though it
is similar to update. This mode synchronizes the archive with the files on
the OS, only replacing files in the archive if the file time or size of the
OS file is different, adding new files, and deleting entries from the
archive where there is no matching file. As this mode can delete entries
from the archive, consider making a backup copy of the archive.
例子
假设我们有以下 3 个文件:
$ touch file1 file2 file3
我们将它们添加到 ZIP 文件中。
$ zip file.zip file{1..3}
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)
一段时间过去并file3
更新。
$ touch file3
现在我们更新 ZIP 文件。
$ zip -FS file.zip file{1..3}
updating: file3 (stored 0%)
检查 ZIP 文件,我们看到文件的时间现在如下所示:
$ unzip -l file.zip
Archive: file.zip
Length Date Time Name
--------- ---------- ----- ----
0 07-12-2014 02:59 file1
0 07-12-2014 02:59 file2
0 07-12-2014 03:00 file3
--------- -------
0 3 files
如果我们创建一个临时目录并在其中解压 ZIP 文件:
$ mkdir temp; cd temp
$ unzip ../file.zip
Archive: ../file.zip
extracting: file1
extracting: file2
extracting: file3
该目录的内容如下:
$ ls -l
total 0
-rw-rw-r--. 1 saml saml 0 Jul 12 02:59 file1
-rw-rw-r--. 1 saml saml 0 Jul 12 02:59 file2
-rw-rw-r--. 1 saml saml 0 Jul 12 03:00 file3
如果我们使用stat
命令来查看file3
:
$ stat file3
File: ‘file3’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd02h/64770d Inode: 17307675 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ saml) Gid: ( 1000/ saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2014-07-12 03:00:16.000000000 -0400
Modify: 2014-07-12 03:00:16.000000000 -0400
Change: 2014-07-12 03:01:03.447913554 -0400
Birth: -
笔记:请注意,访问、修改和更改都有时间戳。该zip
命令保留您使用-FS
开关时的访问和修改时间。