tar命令打包和压缩与解压

Linux里压缩与打包时分开的:

打包:多个文件变一个文件。该一个文件会大于整体所有文件,因为会添加各个信息说明哪到哪是一个文件.

压缩:大文件变小文件。

归档:将多个文件变成一个文件,这个文件就是归档文件.

打包命令:  tar  -cvf 归档路径  被打包文件路径。

(c--create archive   v-verbose  f  --file ,f指归档路径,f必须放在其他选项之后,而且-可省略不写)

单独打包命令:  tar -cvf 归档路径 被打包路径.  (整体文件变大,后缀一般是.tar)

gzip压缩命令:     tar -zcvf 归档路径 被打包路径.  (gun-zip压缩,后缀一般是.tar.gz)

bzip2压缩命令:   tar -jcvf  归档路径 被打包路径.  (bzip2压缩,后缀一般是.tar.bz2)

例子:

[root@lbg test]# ls

a  b  c  d

[root@lbg test]# tar -cvf test.tar a b c d  ---将文件abcd打包为test.tar

[root@lbg test]# ls

a  b  c  d  test.tar

可以单独的打包,但不可单独的压缩,单独的-z命令是不行的.

[root@lbg test]# tar -zcvf test.tar.gz a b c d     ---打包并gzip压缩。

[root@lbg test]# ls

a  b  c  d  test.tar  test.tar.gz

[root@lbg test]# tar -jcvf test.tar.bz2 a b c d  ---打包并bzip2压缩。

[root@lbg test]# ls

a  b  c  d  test.tar  test.tar.bz2  test.tar.gz

打包时归档路径可以相对/绝对路径,被打包文件路径最后是相对路径,用绝对路径也可以,但会有警告.另外如果是绝对路径,则会打包的是该绝对路径下的文件,而非目录下的具体文件.


解压:

拆包时有同名文件会直接覆盖,tar打包的都可拆,加不加z .j都可。

但如果加了zj,就只能拆对应的zipbzip2格式的包.

拆包命令:(-x 拆包  -C 指定解压路径)

 tar -xvf 归档文件路径   ---可拆tar/gzip/bzip2格式的包

tar -zxvf 归档文件路径   ---只可拆gzip格式的包

tar-jxvg 归档文件路径    ---只可拆bzip2格式的包

 unzip  test.zip                                  --拆zip格式的包


解压到指定位置的命令
:tar -xvf  test.tar  -C  /tmp  --解压指定位置:/tmp,-C (C --change dir.)

另外:选项中-可省略,v和省略.故可以:

tar  xvf  test.tar    ----或者 ----tar  xf  test.tar

Linux里一般不用zip,但有的话,解压命令是:   unzip  test.zip  

例子:

[root@lbg test]# tar -xvf test.tar -C /test/bb     

[root@lbg test]# tar -zxvf test.tar.gz -C /test/bb

[root@lbg test]# tar -jxvf test.tar.bz2 -C /test/bb

 

原文地址:https://www.cnblogs.com/lbg-database/p/10109965.html