Linux tar命令用法

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

1、tar命令格式

1
tar[必要参数][选择参数][文件]

命令功能

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

tar命令常用参数

必要参数有如下:
-A新增压缩文件到已存在的压缩
-B设置区块大小
-c建立新的压缩文件
-d记录文件的差别
-r添加文件到已经压缩的文件
-u添加改变了和现有的文件到已经存在的压缩文件
-x从压缩的文件中提取文件
-t显示压缩文件的内容
-z支持gzip解压文件
-j支持bzip2解压文件
-Z支持compress解压文件
-v显示操作过程
-l文件系统边界设置
-k保留原有文件不覆盖
-m保留文件不被覆盖
-W确认压缩文件的正确性
可选参数如下:
-b设置区块数目
-C切换到指定目录
-f指定压缩文件
–help显示帮助信息
–version显示版本信息

2、常见解压/压缩命令

.tar

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

.gz

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

.bz2

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

.bz

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz
压缩:未知

.Z

解压:uncompress FileName.Z
压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

.zip

解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar

解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

3、常用示例

实例1:将文件全部打包成tar

1
2
3
4
5
tar -cvf log.tar log2012.log

tar -zcvf log.tar.gz log2012.log

tar -jcvf log.tar.bz2 log2012.log

在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包; 如果加 j 参数,则以 .tar.bz2 来作为tar包名。

实例2: 查看tar包内有哪些文件

1
tar -ztvf log.tar.gz

由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上 z 这个参数了。

实例3:只将tar包内的部分文件解压出来

1
tar -zxvf log.tar.gz log2012.log

我可以透过 tar -ztvf 来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!

实例4: 文件备份下来,并且保存其权限

1
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时

实例5: 在文件夹当中,比某个日期新的文件才备份

1
tar -N "2012/11/13" -zcvf log17.tar.gz test

实例6: 备份文件夹内容是排除部分文件

1
tar --exclude scf/service -zcvf scf.tar.gz scf/*

实例7: 将文件解压到指定目录下

1
tar zxvf test.tgz -C /tmp

把需要解压的目的目录放到-C后面就可以了,也就是这里的/tmp

实例8:检查.gz包是否完整

1
gunzip -vt log17.tar.gz
-------------本文结束感谢您的阅读-------------