我有一个 .tgz 文件并且正在运行tar -xfvz cudnn-9.0-linux-x64-v7.tgz
但出现以下错误:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
我不明白为什么会发生这种情况。我使用以下 curl 命令获取了该文件:curl -O https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.5/prod/9.0_20171129/cudnn-9.0-linux-x64-v7.tgz
也许这是个问题curl
?我试过使用,wget
但由于某种原因甚至没有获取文件。
我究竟做错了什么?
使用以下命令:tar -xfz cudnn-9.0-linux-x64-v7.tgz
我收到以下错误:
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
答案1
您的答案很简单,该文件不存在,curl
只需将 HTML 文档保存为.tgz
文件!
您可以通过打开来检查这浏览器中的链接。如你所见,找不到网页!
您也可以通过命令行进行检查:
curl -Is https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.5/prod/9.0_20171129/cudnn-9.0-linux-x64-v7.tgz | head -n 1
HTTP/1.1 404 Not Found
如您所见,它具有相同的输出。
因此当你运行此命令时:
curl -O https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.5/prod/9.0_20171129/cudnn-9.0-linux-x64-v7.tgz
Curl 只需下载此网页并将其保存为.tgz
文件即可。因此,您可以将.tgz
后缀更改为.html
,并使用 Firefox 等您喜欢的 Web 浏览器打开该文件,因为它不是 gzip 格式,而只是一个 HTML 文档。
另外,当我们检查cudnn-9.0-linux-x64-v7.tgz
文件格式时,正如您所见,它是HTML document
但不是gzip compressed data
:
file cudnn-9.0-linux-x64-v7.tgz
cudnn-9.0-linux-x64-v7.tgz: HTML document, ASCII text, with very long lines, with CRLF, LF line terminators
更新:
如需下载,cudnn
请访问这页面,登录后,您可以找到许多版本cuddn
可供下载。
和这与您之前想要下载的文件完全相同(但现在有许多新版本和易于安装的文件可用.deb
,您可以下载它们)。
更新2:
因为你说你无法访问网络浏览器,所以我得到了这下载链接并写入此命令:
curl -O http://developer.download.nvidia.com/compute/redist/cudnn/v7.0.5/cudnn-9.0-linux-x64-v7.tgz
因此,您可以通过命令行使用它,而无需 Web 浏览器或登录。
答案2
根据此超级用户回答:
如果您正在使用该
-v
标志,请尝试将其关闭。这应该会减少输出并让您看到发生了什么。
我会看看能否找到更好的链接。同时将命令更改为:
tar -xfz cudnn-9.0-linux-x64-v7.tgz
现在您可以看到所有错误消息。然后相应地调整您的问题或使用新信息回答您自己的问题。
答案3
该f
选项指定文件,因此您必须在f
选项后立即提供文件名(在这种情况下顺序很重要):
此外,文件未压缩,因此删除该z
选项
tar -xvf cudnn-9.0-linux-x64-v7.tgz