tar命令解压jdk.tar.gz包 报错 gzip: stdin: not in gzip format

转自:https://blog.csdn.net/LL_zhuo/article/details/44173355

遇到和这篇博文一样的问题了。用wget 从oracle官网下载jdk,

http://download.oracle.com/otn-pub/java/jdk/8u40-b25/jdk-8u40-linux-x64.tar.gz


用 tar -vxf 命令怎么也打不开。原来这个链接下载到的是一个HTML文件,cat查看其内容发现是authorization认证失败。估计是和在浏览器中下载一样, 需要先同意网页上的下载协议。不知道怎样在命令行模式下告知oracle同意这个协议。无奈下只好从浏览器下载,

==以下为原文==

 

Linux下解压maven遇到的问题:

[root@v52540c2232 software]# tar -xvf apache-maven-3.0.3-bin.tar.gz


gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

使用wget -N 下载了个maven包,http://www.apache.org/dyn/closer.cgi/maven/binaries/apache- maven-3.0.3-bin.tar.gz,解压的时候一直报这个错误。觉得很奇怪,google了下发现很多解决方法都没有用,最后发现这个问题实 际是这样的。

http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.3- bin.tar.gz指向的是一个页面,具体的下载的包包含在这个页面的一个link中,因此运行上述下载命令下载的实际是一个html的page。这一 点可以用file命令查看证实。

file apache-maven-3.0.3-bin.tar.gz
apache-maven-3.0.3-bin.tar.gz: HTML document
所以报错的原因在这里,而不是解压命令不对的问题。


语  法:file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

补充说明:通过file指令,我们得以辨识该文件的类型。

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

Source命令:

 

source命令:

source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

用法: 

source filename 或 . filename

source命令除了上述的用途之外,还有一个另外一个用途。在对编译系统核心时常常需要输入一长串的命令,如:

make mrproper

make menuconfig

make dep

make clean

make bzImage

…………

如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作用就是 把一个文件的内容当成shell来执行,先在linux的源代码目录下(如/usr/src/linux-2.4.20)建立一个文件,如 make_command,在其中输入一下内容:

make mrproper &&

make menuconfig &&

make dep &&

make clean &&

make bzImage &&

make modules &&

make modules_install &&

cp arch/i386/boot/bzImage /boot/vmlinuz_new &&

cp System.map /boot &&

vi /etc/lilo.conf &&

lilo -v

文件建立好之后,每次编译核心的时候,只需要在/usr/src/linux-2.4.20下输入:

source make_command

即可,如果你用的不是lilo来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。

顺便补充一点,&&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令。

原文地址:https://www.cnblogs.com/sharpest/p/5795315.html