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
2、将/etc目录拷贝到/tmp/part1目录
用命令:cp -r /etc /tmp/part1
3、进入到/tmp/part1目录
用命令:cd /tmp/part1
4、对文件进行打包的命令:tar -cvf myetc.tar etc (myetc.tar为处理后文件的全名称,etc为被打包文件)
5、删除etc文件:rm -rf etc
6、对包文件进行解包的命令:tar -xvf myetc.tar (myetc.tar为待解包文件全名)
三、运用tar命令进行打包压缩与解压缩并解包
例2:对文件进行打包并且进行gzip压缩
1、进入例1中的/tmp/part1目录,并删除myetc.tar包文件
2、进行打包并压缩(gzip压缩):tar -czvf myetc.tar.gz etc (myetc.tar.gz为处理后文件的全名称,etc为待打包并压缩的文件)
3、删除etc目录:rm -rf etc
4、进行解压缩并且解包:tar -xzvf myetc.tar.gz (myetc.tar.gz为待解压并解包的文件全名)
例3:对文件进行打包并且进行bzip2压缩
1、进入例2中的/tmp/part1目录,并删除myetc.tar.gz包文件
2、进行打包并压缩(bzip2压缩):tar -cjvf myetc.tar.bz2 etc (myetc.tar.bz2为处理后文件的全名称,etc为待打包并压缩的文件)
3、删除etc目录:rm -rf etc
4、进行解压缩并且解包(指定目录/home):tar -xjvf myetc.tar.bz2 -C /home (-C:指定解压目录)
例4:仅打包压缩etc目录下的某个目录,例如etc/udev