Правильный ответ, если у вас есть только версия tar для Sun:
gzip -dc file.tar.gz | tar -tf -
, как указано Риккардо Мурри в комментарии выше. Вы можете использовать эту команду в любой версии Solaris с незапамятных времен.
Если бы у вас был доступный GNU tar, вы бы, конечно, даже не задавали этот вопрос. Я считаю, что в Solaris 11 этот tar GNU установлен по умолчанию, однако он будет называться gtar
, чтобы отличать его от стандартной версии tar от Sun.
Если GNU tar по какой-либо причине не установлен в вашей системе Solaris 11, вы можете установить его следующим образом:
pkg install //solaris/archiver/gnu-tar
Несколько иронично, что GNU tar теперь доступен по умолчанию в Solaris 11, потому что он стал намного меньше необходимости: похоже, что Oracle / Sun обновили свой собственный tar, так что теперь он предлагает поддержку сжатия (аналогично GNU tar) и может обрабатывать проблемные tar-файлы Linux, которые ранее выдавали ошибку, если вы пытались распаковать с помощью Sun tar.
В Solaris 10 вы можете надеяться, что ваш системный администратор любезно установил содержимое компакт-диска Solaris Companion. В этом случае вы найдете GNU tar в / opt / sfw / bin / gtar
. К сожалению, многие системные администраторы Solaris гордятся тем, что намеренно не устанавливают пакеты от Sun (теперь Oracle), которые делают систему Solaris «GNU-совместимой» при настройке хоста. Бьет меня почему.
В любом случае: в вашей системе всегда должен быть GNU tar (по крайней мере, на В вашей организации: Убедитесь, что GNU tar является частью вашего пакета по умолчанию для новых хостов Solaris!
Вы можете найти «Core». что соответствует Core 0 и Core 1 (в моей системе 0 и 2):
sensors | grep -oP "Core.:\s*\+\K[0-9]+" | tr "\n" ","
46,42,
и используйте tr (anslate ), чтобы заменить новые строки запятыми.
Это служит вам дополнительной запятой в конце.
Вы избавляетесь от этого с помощью подстроки от начала (0 )до единицы перед концом (-1):
sens=$(sensors | grep -oP "Core.:\s*\+\K[0-9]+" | tr "\n" ",")
echo ${sens: 0: -1}
47,44