有没有可能根据tar文件知道什么时候需要使用tar或者gtar
例如
我有一些tar文件
sometarfile.tar
如何知道是否需要使用tar或者gtar命令?
是否有可能检查tar文件,并根据这个了解哪个命令运行?
不,tar文件格式不存储关于生成它的程序的信息。
编辑:
文件实用程序的Linux版本可以检测到Solars和GNU tar生成的文件之间的区别。 它通过扩展search来在报头中包含格式和版本信息。 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
。 话虽如此,我不知道,也找不到一个编码版本信息的标准,所以我会认为这是一个不能被依赖的黑客。
我不能说我曾经发现一个tar文件,GNU tar无法处理的Solaris tar可以(相反,因为你知道不正确),所以在你的情况下,我只会使用gtar
从任何焦油文件你有。
关于你在评论中的问题。 这不是一个好主意,因为退出状态> 0只是意味着发生错误,可能是错误,而不是“我不明白这种格式”。