Как отменить действи опции --touch команды tar?

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

Аватара пользователя
жучара
Сообщения: 772
ОС: астралинукс

Как отменить действи опции --touch команды tar?

Сообщение жучара »

Друзья! Вот аж в трёх местах написано, что она (--touch) устанавливает время модификации файла равное времени его извлечения. Я так понимаю, речь идёт об извлечении файла из архива.

http://www.gnu.org/software/tar/manual/html_chapter/operations.html#index-touch
http://www.gnu.org/software/tar/manual/html_chapter/Formats.html#index-touch-1
http://www.gnu.org/software/tar/manual/html_chapter/tar-invocation.html#index-touch_002c-summary

И, суда по коду, эта опция действует по умолчанию. Хотя именно про это нигде не написано.

...debian, jessie. Файл foo создадим, сархивируем, время архивации посмотрим

Shell

$ ls
$ > foo
$ tar --create --file=archive.tar foo
$ tar --list --verbose --file=archive.tar foo
-rw-r--r-- user/user 0 2021-12-12 09:59 foo
$
Ну вот, время 2021-12-12 09:59.

Файл foo удалим, архив archive.tar разархивируем, время модификации файла foo посмотрим:

Shell

$ rm foo
$ tar -xf archive.tar
$ stat -c%x foo -c%y foo -c%z foo
2021-12-12 11:28:29.605996423 +0000
2021-12-12 11:28:29.605996423 +0000
2021-12-12 11:28:29.605996423 +0000
$
Текущее время на всякий случай:

Shell

$ date
Sun Dec 12 11:28:34 UTC 2021
$
То есть опция --touch сработала по умолчанию, как бы её отменить? Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19372
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как отменить действи опции --touch команды tar?

Сообщение Bizdelnick »

bullseye, не наблюдаю такого.

Shell

% tar --version
tar (GNU tar) 1.34
Copyright (C) 2021 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.

Авторы: John Gilmore и Jay Fenlason.
%
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 772
ОС: астралинукс

Re: Как отменить действи опции --touch команды tar?

Сообщение жучара »

Bizdelnick

Shell

$ tar --version
tar (GNU tar) 1.27.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://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.
$
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Фантом
Сообщения: 434
ОС: openSUSE

Re: Как отменить действи опции --touch команды tar?

Сообщение Фантом »

Shell

# date
Вт 14 дек 2021 21:22:57 MSK
жучара, на текущий номер года посмотрите и не майтесь дурью.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 772
ОС: астралинукс

Re: Как отменить действи опции --touch команды tar?

Сообщение жучара »

Фантом писал:
14.12.2021 21:25

Shell

# date
Вт 14 дек 2021 21:22:57 MSK
жучара, на текущий номер года посмотрите и не майтесь дурью.
ну 21-ый год, а чё не так?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 772
ОС: астралинукс

Re: Как отменить действи опции --touch команды tar?

Сообщение жучара »

Bizdelnick

Я пересобрал tar и переустановил его (не на jessie (не смог), а на астралинукс), но всё равно своего не добился:

Shell

$ ls
$ > foo
$ tar --create --file=archive.tar foo
$ tar --list --verbose --file=archive.tar foo
-rw-r--r-- user/user 0 2021-12-14 20:38 foo
$
$ rm foo
$ tar -xf archive.tar
$ stat -c%x foo -c%y foo -c%z foo
2021-12-14 20:48:59.276413764 +0000
2021-12-14 20:48:59.276413764 +0000
2021-12-14 20:48:59.276413764 +0000
$ date
Вт дек 14 20:49:21 UTC 2021
$
И вот версия tar:

Shell

$ tar --version
tar (GNU tar) 1.34
Copyright (C) 2021 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.

Авторы: John Gilmore и Jay Fenlason.
$
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19372
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как отменить действи опции --touch команды tar?

Сообщение Bizdelnick »

stat неправильно запускаете. Поскольку опция -c указана несколько раз, используется формат, заданный последним (%z). И поскольку файл foo указан в командной строке трижды, три раза время изменения его статуса и выводится. А времени модификации Вы в итоге не видите.

Shell

user@debian8-amd64:~$ touch foo
user@debian8-amd64:~$ ls -l foo
-rw-r--r-- 1 user user 0 дек 15 00:02 foo
user@debian8-amd64:~$ tar -cf archive.tar -v foo
foo
user@debian8-amd64:~$ tar -tvf archive.tar
-rw-r--r-- user/user 0 2021-12-15 00:02 foo
user@debian8-amd64:~$ rm foo
user@debian8-amd64:~$ tar -xf archive.tar
user@debian8-amd64:~$ ls -l foo
-rw-r--r-- 1 user user 0 дек 15 00:02 foo
user@debian8-amd64:~$ stat -c '%x
> %y
> %z' foo
2021-12-15 00:03:18.348000000 +0300
2021-12-15 00:02:29.000000000 +0300
2021-12-15 00:03:18.348000000 +0300
user@debian8-amd64:~$ tar --version
tar (GNU tar) 1.27.1
Copyright (C) 2013 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете продавать и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы: John Gilmore и Jay Fenlason.
user@debian8-amd64:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.11 (jessie)
Release: 8.11
Codename: jessie
user@debian8-amd64:~$
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: