У меня есть несколько .tgz панических ядром журналов, которые я должен извлечь из одного файла. Метки времени для этих .tgz файлов важны. Каждый раз, когда я использую следующее: tar - zvxf paniclogs.tgz
-rwxrwxrwx 1 root root 22359 Feb 22 15:03 kernel-panic-20190213020406-3.tgz
-rwxrwxrwx 1 root root 22971 Feb 22 15:03 kernel-panic-20190213020844-2.tgz
-rwxrwxrwx 1 root root 28344 Feb 22 15:03 kernel-panic-20190213101549-1.tgz
-rwxrwxrwx 1 root root 30683 Feb 22 15:03 kernel-panic-20190213154050-0.tgz
Это извлекает журналы, но изменяет метки времени на дату и время, когда я извлек их. Дело обстоит не так, когда я использую Cygwin. Я знаю, что должен быть способ извлечь эти журналы и сохранить метки времени. Можно ли помочь?Спасибо.
Это не может быть сделано с tar GNU. Однако существует менее известная утилита star
, разработанный Jörg Schilling, который выполнит точно, что Вы после. Я продемонстрирую, как это работает.
Сначала мы можем исследовать единственный файл в тесте tgz, архивируют и демонстрируют его метку времени, которую я выделил ниже, чтобы заставить терминал произвести совершенно ясный:
andrew@ilium$ tar -tv --full-time -f test.tgz mp3enc31/readme.txt
-rw-r--r-- sir/inel 937 1998-11-06 00:28:41 mp3enc31/readme.txt
^^^^^^^^^^
Поскольку Вы нашли при извлечении этого файла обычным способом с tar
время доступа (и время изменения) изменено. Снова я изменил терминальный вывод для легкого показа этого:
andrew@ilium~$ tar -xf test.tgz mp3enc31/readme.txt
andrew@ilium~$ stat mp3enc31/readme.txt
File: readme.txt
Size: 937 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 56885505 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ andrew) Gid: ( 100/ users)
Access: 2019-02-23 17:13:55.385500219 +1100 <--------------------
Modify: 1998-11-06 00:28:41.000000000 +1100
Change: 2019-02-23 17:13:55.385500219 +1100 <--------------------
Birth: -
andrew@ilium~$
Однако, если мы используем star
утилита как sudo
, (обратите внимание, что sudo требуется для ctime модификации), Вы будете видеть, что все времена доступа сохраняются:
andrew@ilium~$ sudo star -xza -ctime < test.tgz mp3enc31/readme.txt
star: 62 blocks + 0 bytes (total of 634880 bytes = 620.00k).
andrew@ilium~$ stat mp3enc31/readme.txt
File: readme.txt
Size: 937 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 59377688 Links: 1
Access: (0644/-rw-r--r--) Uid: (30076/ UNKNOWN) Gid: (30000/ UNKNOWN)
Access: 1998-11-06 00:28:41.000000000 +1100 <--------------------
Modify: 1998-11-06 00:28:41.000000000 +1100
Change: 1998-11-06 00:28:41.000000000 +1100 <--------------------
Birth: -
andrew@ilium~$
star
страницы справочника советуют некоторой осторожности с -ctime
опция, поскольку это может перепутать крон, систему новостей и даже замедлить системные часы. Поэтому просто будьте немного осторожны!
Ссылки: