解压.tar.gz出错gzip: stdin: not in gzip format tar: /Child returned status 1 tar: Error is not recoverab

解压.tar.gz出错gzip: stdin: not in gzip format tar: /Child returned status 1 tar: Error is not recoverable: exiting now

最近研究shell编程,需要下载解压一些.tar.gz的文件,但经常遇到解压失败的情况:

1

2

3

4

[root@xxxxxxx ~]# tar -jxvf tcl8.4.16-src.tar.gz

bzip2: (stdin) is not a bzip2 file.

tar: Child returned status 2

tar: Error is not recoverable: exiting now

今天仔细研究了一下,如何解决这个问题:

1. 先查看文件真正的属性是什么?

1

2

3

4

5

6

7

[root@xxxxx ~]# tar -zxvf tcl8.4.16-src.tar.gz

 

gzip: stdin: not in gzip format

tar: Child returned status 1

tar: Error is not recoverable: exiting now

[root@xxxxxx ~]# file tcl8.4.16-src.tar.gz

tcl8.4.16-src.tar.gz: HTML document text

我赛,竟然是HTML,这次终于知道是为什么了。

理由如下:

文件的下载链接不是直接指向文件,而是先指向一个页面,在这个页面里才是真的下载链接,所以在前一个页面上直接保存文件,实际上保存的是一个页面。

假如属性是bz文件,就用bz文件的解压方式。

补充一下file命令:

通过file指令,我们得以辨识该文件的类型。

参  数:
 -b  列出辨识结果时,不显示文件名称。
 -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
 -f<名称文件>  指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。
 -L  直接显示符号连接所指向的文件的类别。
 -m<魔法数字文件>  指定魔法数字文件。
 -v  显示版本信息。
 -z  尝试去解读压缩文件的内容。

 2.重新获取tar包路径,先用浏览器打开,从弹出来的save 对话框里获取下载链接

这次就完美了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值