Linux基本操作之tar命令打包与压缩

一、打包与压缩的概念

1、打包:指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署。

2、压缩:数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。数据压缩包括有损压缩和无损压缩。

3、压缩或打包文件常见扩展名

*.tar, *.tar.gz, *.gz, *.bz2, *.Z;

Linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名时必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。

二、运用tar命令进行打包与解包

参数选项:

-c:(create)创建生成打包文件(也就是对文件进行打包)

-x :解包(将打包生成的包文件解开),可以搭配-C(大写),将包文件解开到特定的目录

-t :查看打包文件的内容含有哪些文件

-j :通过bzip2的支持进行压缩/解压缩,此时文件最好为*.tar.bz2

-z :通过gzip的支持进行压缩/解压缩,此时文件最好为*.tar.gz

-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来

-f :(filename)后面跟处理后文件的全名称(路径+文件名+后缀名)

-C 目录:这个选项用在解压缩,若要将压缩文件解压缩到指定目录,可以使用这个选项

-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

--exclude=FILE:在压缩的过程中,不要将那些文件打包

注意-c, -t, -x 不可同时出现在一串指令列中

 

例1:对文件进行打包

1、在/tmp目录下创建一个名为part1的目录

用命令:mkdir -p /tmp/part1

Linux基本操作之tar命令打包与压缩

2、将/etc目录拷贝到/tmp/part1目录

用命令:cp -r /etc /tmp/part1

Linux基本操作之tar命令打包与压缩

3、进入到/tmp/part1目录

用命令:cd /tmp/part1

Linux基本操作之tar命令打包与压缩

4、对文件进行打包的命令:tar -cvf myetc.tar etc   (myetc.tar为处理后文件的全名称,etc为被打包文件)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

5、删除etc文件:rm -rf etc

Linux基本操作之tar命令打包与压缩

6、对包文件进行解包的命令:tar -xvf myetc.tar (myetc.tar为待解包文件全名)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

 

三、运用tar命令进行打包压缩与解压缩并解包

例2:对文件进行打包并且进行gzip压缩

1、进入例1中的/tmp/part1目录,并删除myetc.tar包文件

Linux基本操作之tar命令打包与压缩

2、进行打包并压缩(gzip压缩):tar -czvf myetc.tar.gz etc  (myetc.tar.gz为处理后文件的全名称,etc为待打包并压缩的文件)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

3、删除etc目录:rm -rf etc

Linux基本操作之tar命令打包与压缩

4、进行解压缩并且解包:tar -xzvf myetc.tar.gz (myetc.tar.gz为待解压并解包的文件全名)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

 

例3:对文件进行打包并且进行bzip2压缩

1、进入例2中的/tmp/part1目录,并删除myetc.tar.gz包文件

Linux基本操作之tar命令打包与压缩

2、进行打包并压缩(bzip2压缩):tar -cjvf myetc.tar.bz2 etc  (myetc.tar.bz2为处理后文件的全名称,etc为待打包并压缩的文件)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

3、删除etc目录:rm -rf etc

Linux基本操作之tar命令打包与压缩

4、进行解压缩并且解包(指定目录/home):tar -xjvf myetc.tar.bz2 -C /home  (-C:指定解压目录)

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩

 

例4:仅打包压缩etc目录下的某个目录,例如etc/udev

Linux基本操作之tar命令打包与压缩

Linux基本操作之tar命令打包与压缩