отметка времени XXXX s в будущем выпуске-touch command (Linux)

когда я untar a 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
16
задан Angs
04.03.2023 7:16 Количество просмотров материала 2397
Распечатать страницу

2 ответа

это не сработало, потому что вы изменили временную метку архиве, не из файлов, которые он содержит. Если вы запустите 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 '{}' \;
4
отвечен terdon 2023-03-05 15:04

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

tar --touch -xvf openssl-1.0.1e.tar.gz
5
отвечен RawwrBag 2023-03-05 17:21

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

debian
linux
timestamp
touch
unix
Вверх