можно ли узнать, когда нужно использовать tar или gtar в соответствии с файлом tar
например
У меня есть tar-файл как
sometarfile.tar
как узнать, нужно ли использовать команду tar или gtar?
можно ли проверить tar-файл и по нему понять, какую команду запускать?
Нет, формат файла tar не хранит никакой информации о программе, которая его сгенерировала.
РЕДАКТИРОВАТЬ:
Версии файловой утилиты для Linux могут определять разницу между файлами, сгенерированными с помощью Solars и GNU tar. Это достигается за счет расширения поиска и включения информации о формате и версии в заголовок. Файлы tar, созданные GNU, имеют ustar
(это 2 пробела после ustar), тогда как в tar-файлах Solaris ustar 00
.
Вы можете заставить вашу версию файла Solaris работать аналогично версии Linux, добавив строку
257 string ustar\040\040 USTAR tar archive (GNU)
над линией
257 string ustar USTAR tar archive
в /etc/magic
. Сказав, что я не знаю и не могу найти стандарт для кодирования информации о версии, я бы предположил, что это взлом, на который нельзя положиться.
Я не могу сказать, что когда-либо находил tar-файл, который GNU tar не может обработать, что tar Solaris может (обратное, как вы знаете, неправда), поэтому в вашей ситуации я бы просто использовал gtar
для извлечения файлов из любого имеющегося у вас tar-файла.
По поводу вашего вопроса в комментариях. Это не лучшая идея, поскольку статус выхода> 0 просто означает, что произошла ошибка, которая может быть ошибкой, отличной от «Я не понимаю этот формат».