作者:曾Jerry 或 大橙员, 250359225@qq.com
压缩的目的
- 在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽
- 接受者接受文件后,解压即可
Linux常见的压缩命令有gzip
, bzip2
和tar
。
gzip
gzip压缩文件名一般以.gz结尾
gzip常用选项:
- -l(list):列出压缩文件的内容
- -k(keep):在压缩或解压时,保留输入文件
- -d(decompress):将压缩文件进行解压缩
1)查看
gzip -l 压缩文件名
比如:gzip -l pwd.1.gz
$ cp /usr/share/man/man1/pwd.1.gz .
$ gzip -l pwd.1.gz
compressed uncompressed ratio uncompressed_name
869 1476 42.3% pwd.1
2)解压
gzip -kd 压缩文件名
比如:gzip -kd pwd.1.gz
该压缩文件是以.gz结尾的单个文件
$ gzip -kd pwd.1.gz
$ ls
pwd.1 pwd.1.gz
3)压缩
gzip -k 源文件名
比如:gzip -k mypwd.1
得到了一个.gz结尾的压缩文件 mypwd.1.gz
$ gzip -k mypwd.1
book@100ask:~/Desktop$ ls
mypwd.1 mypwd.1.gz pwd.1 pwd.1.gz
注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,并删除原有的文件,所以说,推荐使用 gzip -k 来压缩源文件
2)相同的文件内容,如果文件名不同,压缩后的大小也不同
3)gzip只能压缩单个文件,不能压缩目录
但gzip能够连续压缩多个的文件, 这和上面的表达没有冲突:
提示: man pwd会解压/usr/share/man/man1/pwd.1.gz这个文件,
然后读取该文件中固定的格式的一些信息,然后显示到终端中
bzip2
bzip2的常用选项:
- -k(keep) 在压缩或解压时,保留输入文件。
- -d(decompress) 将压缩文件进行解压缩
1)压缩
bzip2 -k 源文件名
比如:bzip2 -k pwd.1, 得到一个.bz2后缀的压缩文件
2)解压
bzip2 -kd 压缩文件名
比如 bzip2 -kd pwd.1.bz2
注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,并删除原有的文件,所以说,推荐使用bzip2 -k 来压缩源文件
2)bzip2只能压缩单个文件,不能压缩目录
但bzip2能够连续压缩多个的文件, 这和上面的表达没有冲突:
单个文件的压缩使用gzip或bzip2的对比:,
- 压缩有两个参数:1)压缩时间 ; 2)压缩比
- 一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩:
https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/
tar
gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩。
所以需要tar来对多个目录、文件进行打包和压缩。
tar常用选项:
- -c(create) 表示创建用来生成文件包
- -x:表示提取,从文件包中提取文件
- -t可以查看压缩的文件
- -z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩
- -j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩
- -v(verbose)详细报告tar处理的信息
- -f(file)表示文件,后面接着一个文件名
- -C <指定目录> 解压到指定目录
1. tar打包、gzip压缩
1)压缩
tar -czvf 压缩文件名 目录名
如:tar czvf dira.tar.gz dira
注意:tar -czvf与tar czvf是一样的效果
2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.gz
3)解压
tar xzvf 压缩文件名
tar xzvf 压缩文件名 -C 指定目录
如:tar xzvf dira.tar.gz
解压到当前目录
如:tar xzvf dira.tar.gz -C /home/book
解压到/home/book
2. tar打包、bzip2压缩
1)压缩
tar cjvf 压缩文件名 目录名
如:tar cjvf dira.tar.bz2 dira
2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.bz2
3)解压
tar xjvf 压缩文件名
tar xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2
解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book
解压到/home/book
小结
- 单个文件的压缩/解压使用gzip 和bzip
- 多个文件和目录使用tar
- 小文件一般使用gzip
- 大文件一般使用bzip2
注:本文参考了韦东山老师的讲解