작업 백업으로 사용하는 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
스위치를 사용할 때 액세스 및 수정 시간을 보존합니다.