Вот решение (спасибо, мистер Китт и утки).
Как с помощью Tail -f вывести цвета, используя только Awk, и показать остальную часть вывода?
Думаю, это сработает:
tar --wildcards --to-stdout -xvf archive.tar.gz './*'
Обратите внимание, что могут быть проблемы с частью './*'
:. Я не уверен, как именно tar сопоставляет пути. Очевидно, что если у вас есть абсолютный путь в архиве, это не совпадет, но, опять же, я не уверен, что просто '*'
— лучший вариант.
Я полагаю, что некоторые реализации tar также будут принимать -O
вместо --to-stdout
. Я не уверен, является ли --wildcards
исключительной реализацией GNU.
Вот версия, в которой не используется--wildcards
tar -xOvf archive.tar.gz $(tar -tf archive.tar.gz)
Помимо использования GNU tar
с -O
или --to-stdout
, нет хорошего способа сделать это каким-либо переносимым способом:
$ tar -tvzf dates.tgz
-rw-r--r-- kk/wheel 30 2017-09-25 08:41 a
-rw-r--r-- kk/wheel 30 2017-09-25 08:41 b
$ tar -Ov -xzf dates.tgz
a
Mon Sep 25 08:41:51 CEST 2017
b
Mon Sep 25 08:41:53 CEST 2017
Реализация BSD tar
(на OpenBSD )не поддерживает флаг -O
, и стандартный архиватор pax
также не может извлекать файлы в стандартный вывод.