Linux系统中文件的解压缩操作
压缩:指通过某些算法,将文件尺寸进行相应的缩小,同时不损失文件的内容。
打包:指将多个文件(或目录)合并成一个文件,方便传递或部署。
压缩文件或打包文件常见的扩展名: *.tar.gz, *.tar.bz2;linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。
常见文件扩展名:
- *.tar.gz tar程序打包的文件,并且经过 gzip 的压缩
- *.tar.bz2 tar程序打包的文件,并且经过 bzip2 的压缩
tar命令,选项与参数:
-c :建立打包文件,
-t :查看打包文件的内容含有哪些文件
-x :解打包或解压缩的功能,可以搭配-C(大写)在特定到特定目录解开
-j :通过bzip2的支持进行压缩/解压缩:此时文件最好为 *.tar.bz2
-z :通过gzip的支持进行压缩/解压缩:此时文件最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名)
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个 选项
-p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
注意 -c, -t, -x 不可同时出现在一串指令列中
tar常用的指令组合
第一步确定压缩算法即z还是j,第二步确定c(压缩)还是x(解压),第三步v查看过程,第四步跟f。
(1)打包与压缩:
1 | tar -zcv -f [/路径/]filename.tar.gz 被压缩的文件或目录 |
练习:①将/etc目录下的所有文件打包并压缩至当前目录下
1 | tar -zcvf ./a.tar.gz /etc |
②将/etc目录下的所有文件打包并压缩至/root/etc01.tar.gz
注意:压缩时目录一定要存在,才能压缩成功,否则要先创建目录。
1 | tar -zcvf /root/etc01.tar.gz /etc |
③ 将/etc目录下的所有文件打包并压缩至/root/etc02tar.bz2
1 | tar -jcvf /root/etc02tar.bz2 /etc |
bz2压缩方式文件更小,但是压缩速度较慢
1 | [root@layne testdir]# ll /root | grep etc0 |
(2)备份:(保留之前的权限)
1 | tar -zpcv -f [/路径/]filename.tar.gz 被备份文件或目录 |
(3)解压到当前目录
1 | tar -zxv -f [/路径/]filename.tar.gz |
案例:将/root/etc01.tar.gz解压到当前目录下:
tar -zxvf /root/etc01.tar.gz
(4)解压到指定目录
1 | tar -zxv -f [/路径/]filename.tar.gz -C 指定目录 |
案例:解压/root/etc01.tar.gz解压到当/root/my/目录下:
tar -zxvf /root/etc01.tar.gz -C /root/my/