carimbo de data / hora XXXX s na edição futura - comando touch (Linux)

carimbo de data / hora XXXX s na edição futura - comando touch (Linux)

Quando descompacto um tar.gzarquivo no Debian Lenny, recebo os seguintes resultados:

tar: openssl-1.0.1e/apps/openssl.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.139999998 s in the future
openssl-1.0.1e/apps/openssl-vms.cnf
tar: openssl-1.0.1e/apps/openssl-vms.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.129999998 s in the future
openssl-1.0.1e/apps/passwd.c

Vejo que o carimbo de data/hora do arquivo está no futuro comparando a hora do sistema. Eu uso toucho seguinte para alterar o carimbo de data/hora do arquivo e statmostra que o carimbo de data/hora do arquivo é a hora atual do sistema, então tento descompactar o arquivo, mas ainda recebo o mesmo problema de carimbo de data/hora (como acima).

ts7500:/home# touch -am openssl-1.0.1e.tar.gz 
ts7500:/home# stat openssl-1.0.1e.tar.gz 
  File: `openssl-1.0.1e.tar.gz'
  Size: 4459777         Blocks: 8736       IO Block: 4096   regular file
Device: 2b09h/11017d    Inode: 40802       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 1970-01-01 03:15:24.000000000 +0000
Modify: 1970-01-01 03:15:24.000000000 +0000
Change: 1970-01-01 03:15:24.000000000 +0000
ts7500:/home# date
Thu Jan  1 03:15:48 UTC 1970
ts7500:/home# tar xvf openssl-1.0.1e.tar.gz

Eu sei que posso resolver o problema alterando a hora do sistema date -s "08 JUN 2013 00:19:00"ou usando NTP. Mas eu me pergunto, por que alterar o carimbo de data/hora do arquivo touchnão funcionou? como eu deveria ter alterado o carimbo de data/hora do arquivo, para não ter esse aviso?

Se você quiser ver o sistema de arquivos:

ts7500:/home# blkid
/dev/nbd6: SEC_TYPE="msdos" UUID="01E8-4C7D" TYPE="vfat" 
/dev/nbd8: UUID="236b63b3-15db-40c3-bc5f-e4b7c4b10751" TYPE="ext2" 
/dev/nbd9: UUID="5b13aa84-e589-41a7-84cf-2d0d6bf2a9cd" TYPE="ext3" 
ts7500:/home# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
tmpfs        tmpfs     31M  4.0K   31M   1% /lib/init/rw
udev         tmpfs     10M  160K  9.9M   2% /dev
tmpfs        tmpfs     31M     0   31M   0% /dev/shm
rootfs      rootfs    3.3G  1.7G  1.5G  53% /
/dev/root     ext2    2.0M  1.7M  311K  85% /initrd

Responder1

Não funcionou porque você alterou o carimbo de data/hora doarquivo, não dos arquivos que ele contém. Se você executar stato tar.gzarquivo, descobrirá que a hora foi alterada corretamente. touchnão pode acessar os arquivos armazenados no arquivo até que você os extraia para que permaneçam inalterados.

De qualquer forma, isso não deve ser um problema, basta descompactar o arquivo e alterar o carimbo de data/hora dos arquivos:

mkdir foo
mv openssl-1.0.1e.tar.gz foo/
cd foo/
tar xvvzf openssl-1.0.1e.tar.gz
find . -exec touch -am '{}' \;

Responder2

Você pode extrair seu arquivo tar com o parâmetro --touch para fazer isso automaticamente.

tar --touch -xvf openssl-1.0.1e.tar.gz

informação relacionada