用法

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

注:tar是归档,不是压缩!需要联合其他压缩程序(参数指定)才能同时完成归档和压缩

选项

主要运行模式(部分,必选其一使用):

选项 英文说明 中文说明
-c create a new archive 创建归档
-x extract files from an archive 提取归档
-t list the contents of an archive 查看(显示内容)

可选参数(部分):

选项 英文说明 中文说明
-f use archive file or device ARCHIVE 指定归档文件,这个参数是必选项,后面接文件名
-v verbosely list files processed 详细显示处理过程
-z filter the archive through gzip 归档时通过gzip压缩,后缀一般为.tgz.tar.gz
-C change to directory DIR 改变文件夹目录(提取的时候使用,默认提取到当前路径)

示例

tar格式

描述 命令
【打包】归档 指定目录为xxx.tar tar -``c``vf xxx.tar /xxx
【解包】提取 指定归档包xxx.tar tar -``x``vf xxx.tar
【解包】提取 指定归档包xxx.tar至指定路径 tar -``x``vf xxx.tar -C /xxx
查看 指定归档包xxx.tar tar -tvf xxx.tar

tgz格式

描述 命令
【打包】归档 指定目录为xxx..tgz tar -z``c``vf xxx.tgz /xxx
【解包】提取 指定归档包xxx..tgz tar -z``x``vf xxx.tgz

注:对比于tar,就是加一个z

关于归档文件路径的说明

一般的归档命令格式为:tar -cvf [生成归档包路径] [需要归档的路径]

以打包如下目录为例:

  1. [dsk@dk-centos test]$ pwd
  2. /home/dsk/wcy/test
  3. [dsk@dk-centos test]$ ll
  4. total 0
  5. -rw-rw-r-- 1 dsk dsk 0 Dec 29 09:50 1
  6. -rw-rw-r-- 1 dsk dsk 0 Dec 29 09:50 2
  7. -rw-rw-r-- 1 dsk dsk 0 Dec 29 09:50 3
  8. [dsk@dk-centos test]$

归档路径使用相对路径:.

[dsk@dk-centos test]$ tar -cvf /home/dsk/wcy/test.gz .
./
./1
./2
./3

归档路径使用绝对路径:/home/dsk/wcy/test/

[dsk@dk-centos test]$ tar -cvf /home/dsk/wcy/test.gz /home/dsk/wcy/test/
tar: Removing leading `/' from member names
/home/dsk/wcy/test/
/home/dsk/wcy/test/1
/home/dsk/wcy/test/2
/home/dsk/wcy/test/3

在使用绝对路径归档后,绝对路径也会自动变相对路径,并会有相应提示:tar: Removing leading `/‘ from member names

[dsk@dk-centos test]$ tar -tvf /home/dsk/wcy/test.gz 
drwxrwxr-x dsk/dsk           0 2018-12-29 09:50 home/dsk/wcy/test/
-rw-rw-r-- dsk/dsk           0 2018-12-29 09:50 home/dsk/wcy/test/1
-rw-rw-r-- dsk/dsk           0 2018-12-29 09:50 home/dsk/wcy/test/2
-rw-rw-r-- dsk/dsk           0 2018-12-29 09:50 home/dsk/wcy/test/3

同时可见,最终归档包中各文件的归档路径是根据[需要归档的路径]来指定的,如果使用.则都是以.开始,使用绝对路径则是以绝对路径对应的相对路径开始。
所以一般主要可以在打包目录下使用.来指定归档路径,毕竟归档包在使用时可能并不关心原所处路径是怎样的。