文件压缩是什么?
文件压缩就是把多个文件或目录合并成一个特殊的文件。
为什么要对文件进行压缩?
- 我们在传输大量的文件时,为了让传输速率更快,我们就会对这些文件进行打包压缩。
- 压缩后的文件会比压缩前的文件小很多。普
- 单个文件传输快,多个文件传输慢。
Linux的压缩包可以在windows中成功解压,但是windows的rar格式的压缩包不被Linux系统所支持。
Linux下常见的压缩包格式
.zip
.gz
.bz2
.tar.gz
.tar.bz
gzip
格式:gzip 文件名
例:
[root@oldboy ~]# gzip file1.txt
解压:
gzip -d 压缩包名
例:
[root@oldboy ~]# gzip -d file1.txt.gz
不解压压缩包查看压缩包中的内容:
[root@oldboy ~]# zcat file1.txt.gz
只能压缩单个文件,并且压缩和解压不能保留源文件。
常在我们需要让某个文件不生效时使用。
zip
-r 表示递归压缩
-d 表示解压到指定位置
-T 表示检查压缩包中的内容是否完好
-q 表示不显示打包过程
压缩文件:
格式:zip 压缩后的文件名 需要压缩的文件1 需要压缩的文件2
例:
[root@oldboy ~]# zip file1.txt.zip file1.txt
[root@oldboy ~]# zip -r all.zip /etc /tmp
# 打包/etc下和/tmp下的所有内容,压缩包名为all.zip
解压文件:
格式:unzip 要解压的文件名
注:不加路径表示解压到当前目录
例:
[root@oldboy ~]# unzip file1.txt.zip
不解压文件查看压缩包中的内容:
[root@oldboy ~]# unzip -l file1.txt.zip
可以把多个文件压缩成一个文件,压缩和解压会保留源文件。
tar
常用的压缩组合选项:
格式:
tar 选项 压缩包名 要压缩的文件1 要压缩的文件2
czf : 打包成tar.gz
cjf:打包成tar.bz
cJf:打包成tar.xz
常用的解压组合选项:
tar 选项 压缩包名
zxf:解压tar.gz
jxf:解压tar.bz
xf:自动选择解压模式
不解压压缩包查看压缩包的内容
tf:查看压缩包的内容
可以结合使用find命令来实现对某一类的文件进行打包。
可以使用–exclude排除文件。
(注:可以排除多个文件,也可以把要排除的文件写到一个文件中,批量排除,使用exclude时,等号后面的内容不可以以/开头,如果写绝对路径要删掉第一个/)
示例如下:
[root@oldboy ~]# tar czf oo1.tar.gz --exclude=etc/sysconfig/network-scripts/ifcfg-ens32 /etc
# 表示打包/etc下除了/etc/sysconfig/network-scripts/ifcfg-ens32这个文件以外的所有内容。
[root@oldboy ~]# tar czfX oo1.tar.gz a.txt /etc/
# 表示打包/etc/下的所有的除了a.txt中有的文件以外其他的所有文件。
可以使用h选项来打包链接文件。
在解压时把文件解压到/下可以把压缩包中的内容解压到原来
的位置,进而达到恢复数据的作用。
例:
[root@oldboy ~]# tar czf all.tar.gz /etc
[root@oldboy ~]# tar xf all.tar.gz -C /
同上,在我们需要恢复数据时,可以把打包后的文件的路劲补
齐,就可以达到恢复数据的目的。
例:
[root@oldboy ~]# tar czf all.tar.gz anaconda-ks.cfg
[root@oldboy ~]# tar xf all.tar.gz -C /root/