1.概述:
tar:
tar是linux下的一个打包工具,生成的包通常也用tar作为扩展名,tar只是负责打包,不一定压缩,当然压缩打包也可以,xxxx.tar.gz类型的文件,压缩的tar包,并且使用的压缩算法是GNU ZIP,同样的,xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。
jar:
即Java Archive,Java的包,Java编译好之后生成class文件,但如果直接发布这些class文件的话会很不方便,所以就把许多的class文件打包压缩成一个jar,jar中除了class文件还可以包括一些资源和配置文件,通常一个jar包就是一个java程序或者一个java库。
war:
即Web application Archive,与jar基本相同,但它通常表示这是一个Java的Web应用程序的包,tomcat这种Servlet容器会认出war包并自动部署。
他们相同点是都可以把多个文件打包到一个文件,不同点是 jar是个压缩文件,而tar只打包,不压缩,所以tar还要配合其他压缩工具来压缩,比如tar.bz2,tar.gz 之类的就是在tar的基础上进行的压缩格式。
2.命令:
tar:
-c: 建立压缩档案
-x:解压
-t:列出 tar 包的内容列表
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
tar -cf test.tar *.jpg
#-c表示产生新的包,-f指定包的文件名。将所有.jpg的文件打成一个名为test.tar的包。
tar -rf test.tar *.wav # -r表示增加文件。将所有.wav的文件增加到test.tar的包里面去。
tar -uf test.tar logo.gif
# -u表示更新文件。更新原来test.tar包中的logo.gif文件,
tar -tf test.tar # -t列出文件。列出test.tar包中所有文件,
tar -xf test.tar # -x解开。解出test.tar包中所有文件。
tar -czf jpg.tar.gz *.jpg # 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
rar a jpg.rar *.jpg # rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg # zip格式的压缩,需要先下载zip for linux
unrar e file.rar # 解压rar
unzip file.zip # 解压zip
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java #解压jdk到指定文件夹:
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
jar:
jar 命令:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
与tar 类似, {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:
-c 创建新的 JAR 文件包
-t 列出 JAR 文件包的内容列表
-x 展开 JAR 文件包的指定文件或者所有文件
-u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)
参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。