.
在文件的整理及传输过程中,经常会用到将文件或者文件夹通过打包压缩的方式整理成为一个归档的文件, Windows中用到的压缩解压工具有很多,并且很方便,但是在Linux当中呢,可能会稍微复杂一点,并且方式同样是多样化的。

  • Linux中主要出现的压缩格式及方法如下:

文件后缀

功能说明

*.zip

zip程序打包压缩的文件

*.rar

rar程序打包压缩的文件

*.7z

7zip程序打包压缩的文件

*.tar

tar程序打包,未压缩的文件

*.gz

gip(GNU zip)压缩的文件

*.xz

xz程序压缩的文件

*.bz2

tar打包,gzip程序压缩的文件

*.tar.gz

tar打包,gzip程序压缩的文件

*.tar.xz

tar打包,xz程序压缩的文件

*.tar.bz2

tar打包,bzib2程序压缩的文件

*.tar.7z

tar打包,7z程序压缩的文件

1、tar打包

tar -xzvf .tar.gz -C dir 解压缩
tar -czvf .tar.gz file1 file2 dir 压缩

  • 选项含义说明:
    -c: 建立压缩档案
    -x:解压(会根据压缩格式自动进行识别)
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    这些选项作为tar使用过程中根据执行的操作进行选择,必须要有其一。
  • 下面为压缩或解压档案时可选的。
    -z:有gzip属性的压缩及解压
    -j:有bz2属性的压缩及解压
    -Z:有compress属性的压缩及解压
    -v:显示所有打包及压缩解压过程
    -O:将文件解开到标准输出

-f 是执行tar过程中需要携带的
-f: 使用档案名字,该参数作为最后一个参数,后面只能接档案名。

(1)创建打包文件

tar cvf test1.tar 1 2

把1 2这两个文件打包成一个文件test1,.tar是文件后缀。

对于-f参数,后面要先接打包过后文件的名字,后接打包的源文件内容。

tar包转成docker镜像 tar文件打包_服务器


(2)压缩

-z, --gzip ilter the archive through gzip:使用gzip压缩

可以调用gzip,bzip等压缩工具,对包进行压缩。gzip最常用,使用gzip即可,.gz为后缀。

tar包转成docker镜像 tar文件打包_hive_02


tar包转成docker镜像 tar文件打包_linux_03


(3)解包

-x, --extract, --get extract files from an archive:解压(自动识别各种格式的压缩)

-C, --directory=DIR change to directory DIR:加压到指定目录

tar -xvf test1.tar

-f后面跟所要解压的包的名字即可

tar包转成docker镜像 tar文件打包_hive_04


(4)查看

-t, --list list the contents of an archive: 查看存档的内容列表

tar tvf test1.tar

-t查看包里的内容,并不解压。

tar包转成docker镜像 tar文件打包_tar包转成docker镜像_05


(5)追加

-r, --append append files to the end of an archive:附加文件

tar -rvf applepen.tar a1 a2

把a1、a2追加到已经打好的包里

tar包转成docker镜像 tar文件打包_centos_06


(6)删除

–delete delete from the archive (not on mag tapes!):删除包里的文件

tar --delete -vf applepen.tar a1 a2 a3

删除包里面的文件a1、a2、a3,没有的话会报错,注意名称要一样。

tar包转成docker镜像 tar文件打包_hive_07


注意

  • 尽量不要用绝对路径,使用相对路径。
  • tar: Removing leading `/’ from member names (移除绝对路径的/)。
  • 如果带/.解压后可能覆盖原有文件。
  • 不要在当前目录打包,在上级目录打包。
  • tar: ./aaa.tar.gz: file is the archive; not dumped。