仕事のバックアップとして使用する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
スイッチを使用するときのアクセス時間と変更時間を保持します。