Gzip папки с сохранением исходной метки времени

Большинство приложений не установлены в вашем домашнем каталоге. Файлы конфигурации и данные приложения хранятся в вашем домашнем каталоге.

Так что теоретически вы можете

скопируйте домашний каталог в homebac :cp -r /home/homebac
затем переустановите все свои приложения
затем переместить homebac в дом :mv -r /homebac /home

0
02.12.2020, 10:00
2 ответа

Существует ряд различных временных меток в типичной файловой системе unix, atime, mtime, ctime. Какой из них вы хотите сохранить?

Если вы заинтересованы в сохранении mtime(, которое отображается при выполнении ls -l), это уже работает из коробки, как можно увидеть здесь:

$ date
Wed Dec  2 08:52:36 CET 2020
$ tar --version
tar (GNU tar) 1.32
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

$ find /usr/share/tasksel/ -exec ls -lhad {} +
drwxr-xr-x 3 root root 4.0K Nov  6  2017 /usr/share/tasksel/
drwxr-xr-x 2 root root 4.0K Nov 20 12:21 /usr/share/tasksel/descs
-rw-r--r-- 1 root root 7.9K Nov 14 16:06 /usr/share/tasksel/descs/debian-multimedia-tasks.desc
-rw-r--r-- 1 root root  21K Nov 18 02:40 /usr/share/tasksel/descs/debian-tasks.desc


$ cd /tmp; rm -rf foo.tgz

$ tar czf foo.tgz /usr/share/tasksel/
tar: Removing leading '/' from member names
$ ls -lhan foo.tgz 
-rw-r--r-- 1 1000 1000 4.6K Dec  2 08:54 foo.tgz
$ tar tvf foo.tgz
drwxr-xr-x root/root         0 2017-11-06 09:45 usr/share/tasksel/
drwxr-xr-x root/root         0 2020-11-20 12:21 usr/share/tasksel/descs/
-rw-r--r-- root/root     20596 2020-11-18 02:40 usr/share/tasksel/descs/debian-tasks.desc
-rw-r--r-- root/root      8033 2020-11-14 16:06 usr/share/tasksel/descs/debian-multimedia-tasks.desc
$ tar xf foo.tgz
$ find /tmp/usr/share/tasksel/ -exec ls -lhadn {} + 
drwxr-xr-x 3 1000 1000 4.0K Nov  6  2017 /tmp/usr/share/tasksel/
drwxr-xr-x 2 1000 1000 4.0K Nov 20 12:21 /tmp/usr/share/tasksel/descs
-rw-r--r-- 1 1000 1000 7.9K Nov 14 16:06 /tmp/usr/share/tasksel/descs/debian-multimedia-tasks.desc
-rw-r--r-- 1 1000 1000  21K Nov 18 02:40 /tmp/usr/share/tasksel/descs/debian-tasks.desc

Как видно, временные метки всех папок и файлов сохраняются в архиве (при выполнении команды tar tvf), а также при извлечении с помощью tar xfи проверке с помощьюls -l). Они «сохраняются» постольку, посколькупоскольку (модификация )временные метки извлеченных файлов совпадают с временными метками исходного файла («ноябрь 2017 г. и ноябрь 2020 г. )и отличаются от текущего времени («Декабрь 2020» ).

Если вы получаете разные результаты, скорее всего, ваша методика проверки временных меток ошибочна. Или файловая система, в которую вы извлекаете, не позволяет изменять временные метки.

0
18.03.2021, 22:45

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

touch -r folderToCompress outputFileName
0
18.03.2021, 22:45

Теги

Похожие вопросы