
我已经从下载了一个压缩文件http://ds.arm.com/downloads/。文件详细信息为 DS500-BN-00019-r5p0-21rel1.tgz(64 位)当我尝试使用以下命令提取此文件时
tar -zxvf DS500-BN-00019-r5p0-21rel1.tgz
我收到以下错误
gzip: stdin: invalid compressed data--crc error
tar: Child returned status 1
tar: Error is not recoverable: exiting now
如果我尝试使用“-tzf”选项查看内容,则会得到相同的输出。在不同的 ubuntu 环境中文件提取成功。tar 仅在我的 ubuntu 环境中提取失败。如果我使用 7z,我会观察到以下失败消息
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: DS500-BN-00019-r5p0-21rel1.tgz
Extracting DS500-BN-00019-r5p0-21rel1.tar CRC Failed
Sub items Errors: 1
从互联网下载的所有压缩文件都会出现此行为。如果我使用来自不同 ubuntu 环境或我的系统本身的压缩文件,则不会观察到此行为。
我怀疑这只在我的 ubuntu 环境中出现。请帮助我解决这个问题。
以下是环境详细信息
Ubuntu 12.04
$ tar --version
tar (GNU tar) 1.26
...
$ gzip --version
gzip 1.4
...
如果需要更多详细信息,请告知我。
答案1
尝试
gunzip DS500-BN-00019-r5p0-21rel1.tgz
然后文件就变成DS500-BN-00019-r5p0-21rel1.tar
。
然后尝试
tar -xvf DS500-BN-00019-r5p0-21rel1.tar
如果这不起作用,文件可能已损坏。尝试使用以下命令查找文件类型
file DS500-BN-00019-r5p0-21rel1.tgz
检查输出是否显示gzip compressed data
?如果没有,请再次下载文件后再试。
希望这可以帮助。
答案2
可能是您用来下载文件的任何程序都检测到它们已被压缩,并正在为您解压。浏览器会做这种(无用)的事情。file
对文件运行命令,看看是否显示
gzip compressed data, last modified:...
这是正确的,或者只是类似
POSIX tar archive (GNU)
这意味着它已被解压缩,因此tar xf
无需使用z
。