1、压缩概念:
①有损压缩:会丢失部分数据,会丢失精度,但是不影响数据有效性与正常使用;一般用于压缩音视频、图像文件,如.map4、.mp3、.avi、.jpg等。
②无所压缩:不会丢失数据任何bit,亦不影响数据的正常使用;用来压缩文本文件,当然也可以用来压缩音视频文件,如.tar.b22、.tar.ba2、.zip、.rar等。
压缩的目的:减小网络传输时间和存储占用空间,从时间上(带宽资源)和空间上(磁盘资源)分别节省资源。
2、Linux常见的两种压缩方式:
Windos中常见的压缩方式可能是.rar,这是两种不同的压缩算法。在Linux中常用的压缩算法是gzip和bzip2或.zip。
①zip / unzip:
命令路径:/usr/bin/zip、/usr/bin/unzip
压缩:zip 选项[-r、-y] [压缩后文件名称] [操作对象:文件或目录] ,eg:zip -ry dir_et.zip /etc、zip file_vim.zip /etc/vim/vimrc,-r表示递归压缩目录以及文件,-y表示保持符号链接,而不把符号链接指向的文件也压缩进来。注:由于Linux一切皆文件,若不加-r,则压缩的目录会被解析成文件来压缩,因此压缩的是空目录。
解压缩:unzip [要解压的文件名称],选项就不需要了,解压结果的目标文件名,在之前压缩式会记录在压缩包里,需要覆盖也会提示。
②gzip:
命令路径:/bin/gzip
命令格式:gzip 选项[-k、-d] [操作对象],-k:压缩后保留源文件,不加-k会删除源文件,-d为解压缩
压缩举例:sudo gzip -k /etc/vim/vimrc
解压缩举例:sudo gzip -kd vimrc.gz
③bzip2:
命令路径:/bin/bzip2
命令格式:bzip2 选项[-k、-d] [操作对象],-k:压缩后保留源文件,不加-k会删除源文件,-d为解压缩
压缩举例:bzip2 -k /etc/vim/vimrc
解压缩举例:bzip2-kd vimrc.gz
④以上三种压缩方式总结:
zip:可压缩文件和目录,通用性好。
gzip:只能压缩单个文件,不能压缩目录和多个文件,适合于小文件,压缩也比较块。
bzip2:只能压缩单个文件,不能压缩目录和多个文件适合于大文件,压缩更耗时。
压缩率比较:bzip2 > gzip > zip,对应的压缩速率:bzip2 < gzip < zip
3、tar打包工具:
以上bzip2和gzip都不需要特别记忆,因为tar打包工具集成了这两种压缩算法,对于目录打包压缩进行了支持,因此用tar的时候会多一点,gzip命令和bzip2命令基本用不上:
命令路径:/bin/tar
命令格式:
压缩:tar 选项[-c、-v、-f、-z、-j] [压缩结果文件名] [操作对象文件名/目录名]
解压缩:tar 选项[-x、-v、-f、-z、-j] [解压对象文件名] -c [解压结果存放路径]
参数解释:
-c:打包(归档)压缩,(create)
-x:提取解压缩(extract,提取)
-f:指定文件名
-z:采用gzip算法压缩打包/解压缩
-j:采用bzip2算法压缩打包/解压缩
-C:指定解压重新归档路径
-v:详细报告tar处理信息
举例:
Krj@VM:~$ sudo tar -jcf dir_etc.tar.bz2 /etc
Krj@VM:~$ sudo tar -jxf dir_etc.tar.bz2 -C ./dir_bszip2/
Krj@VM:~$ sudo tar -zcf dir_etc.tar.gz /etc
Krj@VM:~$ sudo tar -zxf dir_etc.tar.gz -C ./dir_gzip/
Krj@VM:~$ ls -lh dir_*
-rw-r--r-- 1 root root 1.6M 3月 30 20:17 dir_etc.tar.bz2
-rw-r--r-- 1 root root 1.9M 3月 30 20:16 dir_etc.tar.gzdir_bszip2:
总用量 12K
drwxr-xr-x 133 root root 12K 3月 30 13:43 etcdir_gzip:
总用量 12K
drwxr-xr-x 133 root root 12K 3月 30 13:43 etc
Krj@VM:~$