linux/solaris 何时使用 tar 或 gtar

linux/solaris 何时使用 tar 或 gtar

是否可以根据 tar 文件知道何时需要使用 tar 或 gtar

例如

我有一些 tar 文件

    sometarfile.tar

如何知道是否需要使用 tar 或 gtar 命令?

是否可以检查 tar 文件并根据此文件了解要运行哪个命令?

答案1

不,tar 文件格式不存储有关生成它的程序的任何信息。

编辑:

Linux 版本的文件实用程序可以检测 Solars 和 GNU tar 生成的文件之间的差异。它通过扩展搜索以在标头中包含格式和版本信息来实现这一点。GNU 生成的 tar 文件有ustar(即 ustar 后面的 2 个空格),而 Solaris tar 文件有ustar 00

你可以通过添加以下行来使 Solaris 版本的文件以与 Linux 版本类似的方式工作

257    string        ustar\040\040    USTAR tar archive (GNU) 

在线以上

257    string        ustar    USTAR tar archive

/etc/magic。话虽如此,但我不知道并且找不到对版本信息进行编码的标准,因此我认为这是一个不可靠的黑客手段。

我不能说我曾经找到过 GNU tar 无法处理而 Solaris tar 可以处理的 tar 文件(正如你所知,反之则不然),因此在你的情况下,我只会使用gtar它从你拥有的任何 tar 文件中提取文件。

关于您在评论中提出的问题。这不是一个好主意,因为退出状态 >0 仅表示发生了错误,而该错误可能不是“我不明白这种格式”的错误。

相关内容