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来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。

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


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来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。

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