当我解压我的tar
.
我这样做:
tar xvf VM_DECOMPTES.tar
一段时间后我收到以下错误:
tar: short read
这里出了什么问题?
tar:无法识别的选项“--version”BusyBox v1.9.1-VMware-visor-klnext-2965 (2010-04-19 12:53:48 PDT) 多调用二进制文件
答案1
我怀疑您的 tar 文件已损坏或被截断。
这tar 文件的标头包含一个size
包含文件长度的字段。如果实际文件比标头规定的短,tar 将尝试读取文件的文件系统末尾并返回比预期短的读取,从而生成您看到的消息。
1 此功能可以追溯到 tar 主要用于磁带归档时,您只能通过读取直到遇到磁带上的 EOF 标记才能知道“文件”的长度。它被保留是为了向后兼容,并且还提供了对标头和文件一致性的良好(如果有点便宜)检查。
答案2
如果 tar 存档不完整,通常会出现此消息。如果运行,tar tvf ./VM_DECOMPTEST.tar
它将检查 tar 文件是否存在不一致。
答案3
这可能是由于您运行的 tar 版本所致,尤其是当您无法使用 GNU tar 重现此问题时。
您可以通过运行以下命令来为您的平台构建新版本的 busybox:
$ wget https://busybox.net/downloads/busybox-1.31.0.tar.bz2
$ tar xjf busybox-1.31.0.tar.bz2
$ cd busybox-1.31.0
$ LDFLAGS=--static make -j16 # if applicable: CROSS_COMPILE=...-linux-gnu-
特别是,使用 busybox v1.22.1(也许还有其他版本)解包时似乎存在某种错误,该错误已被 v1.31.0 修复。