Files
使用 -FS 選項“刷新” zip 文件是否會更改文件的修改時間?
我有一個 zip 文件,用作工作的備份。
-FS
每當我想更新我的備份文件時,我都會使用“刷新”選項 ( )。但是,該文件將上次修改的日期顯示為我最初創建文件的日期,而不是自從我“更新”文件以來的幾次中的任何一次。這是正常行為嗎?
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
交換機時保留訪問和修改時間。參考