A "atualização" de um arquivo zip com a opção -FS altera a hora de modificação do arquivo?

2

Eu tenho um arquivo zip que eu uso como backup para o meu trabalho. Eu uso a opção "freshen" ( -FS ) sempre que eu quero atualizar meu arquivo de backup. No entanto, o arquivo mostra a data da última modificação como sendo a data em que eu criei originalmente o arquivo, em vez de qualquer uma das várias vezes desde que eu "refrescou" o arquivo. Isso é um comportamento normal?

    
por Joshua 11.07.2014 / 22:51

1 resposta

3

O Unix não tem uma data de criação, portanto, quando você atualizar esses arquivos em .zip , estará atualizando-os com base na data de modificação deles, que de acordo com a página zip man é o comportamento normal.

trecho

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.

Exemplo

Digamos que tenhamos os 3 arquivos a seguir:

$ touch file1 file2 file3

Nós os adicionamos a um arquivo ZIP.

$ zip file.zip file{1..3}
  adding: file1 (stored 0%)
  adding: file2 (stored 0%)
  adding: file3 (stored 0%)

Algum tempo se passa e file3 é atualizado.

$ touch file3

Agora atualizamos o arquivo ZIP.

$ zip -FS file.zip file{1..3}
updating: file3 (stored 0%)

Verificando o arquivo ZIP, vemos os horários dos arquivos agora:

$ 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

Se criarmos um diretório temporário e descompactar o arquivo ZIP em:

$ mkdir temp; cd temp

$ unzip ../file.zip 
Archive:  ../file.zip
 extracting: file1                   
 extracting: file2                   
 extracting: file3                   

O conteúdo deste diretório é o seguinte:

$ 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

E se usarmos o comando stat para verificar 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: -

OBSERVAÇÃO: Observe que há carimbos de data e hora para acesso, modificação e alteração. O comando zip preserva os horários de acesso e modificação quando você usa a opção -FS .

Referências

por 12.07.2014 / 09:13