5

Когда я распаковываю файл tar.gz в Debian Lenny, я получаю такие результаты:

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

Я вижу, что временная метка файла в будущем сравнивает системное время. Я использую touch как показано ниже, чтобы изменить метку времени файла, и stat показывает, что метка времени файла - это текущее время системы, затем я пытаюсь распаковать файл, но у меня все еще остается та же проблема с меткой времени (как выше ).

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

Я знаю, что могу решить проблему, изменив системное время по date -s "08 JUN 2013 00:19:00" или используя NTP . Но мне интересно, почему смена метки времени файла на touch не сработала? как мне изменить метку времени файла, чтобы у меня не было этого предупреждения?

Если вы хотите увидеть файловую систему:

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

2 ответа2

5

Вы можете извлечь ваш tar-файл с параметром --touch, чтобы сделать это автоматически.

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

Это не сработало, потому что вы изменили метку времени архива, а не файлов, которые он содержит. Если вы запустите stat в файле tar.gz вы обнаружите, что время было изменено правильно. touch не может получить доступ к файлам, хранящимся в архиве, пока вы не извлечете их, чтобы они остались без изменений.

В любом случае, это не должно быть проблемой, просто распакуйте архив и измените временную метку файлов:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .