一、定义
- 打包:将多个文件(或者目录)合并成一个文件(大小未变),方便传递
- 压缩:通过某些算法,将文件大小进行精简,同时不损失文件的内容
- 解压:将压缩文件解压到指定目录
二、常见压缩文件扩展名解析
*.gz # gzip 程序压缩的文件
*.bz2 # bzip2 程序压缩的文件
*.tar # tar 命令打包, 但并没有压缩过的文件
*.tar.gz # tar 命令打包, 并且经过 gzip 的压缩的文件
*.tar.bz2 # tar 命令打包, 并且经过 bzip2 的压缩的文件
三、常见的压缩、打包、解压指令比较
1. gzip 与 bzip2
gzip 比 bzip2 性能好,但 bzip2 可以获得更高压缩比。缺点是:只能压缩单个文件,不能连同目录一起进行压缩
- gzip 命令
# 参数介绍
-c # 将压缩的数据输出到标准输出(stdout)
-d # 解压缩
-t # 可以用来检验一个压缩文件的一致性,看看文件有无错误
-v # 可以显示出原文件/压缩文件案的压缩比等信息
-(1,2,...,9) # 压缩等级, -1 最快, 但是压缩比最差;-9 最慢,但是压缩比最好。默认是-6
# 不加 -c 参数进行重定向的话,原本的文件会被压缩成为.gz的文件, 源文件不再存在
- bzip2 命令
# 参数介绍
-c # 将压缩的过程产生的数据输出到标准输出(stdout)
-d # force decompression
-k # 保留源文件,而不会删除原始的文件
-z # force compression
-v # 可以显示出原文件/压缩文件案的压缩比等信息
-(1,2,...,9) # 压缩等级, -1 最快,但是压缩比最差;-9 最慢,但是压缩比最好。默认是-6
# 不加 -c 或 -k 参数的话,原本的文件会被压缩成为.bz2的文件, 源文件不再存在
2. tar 打包压缩
可以将很多文件(或目录)打包成为一个文件并进行压缩,加上合适的参数即可进行解压
# 参数介绍
-c # 建立打包文件
-x # 解打包或解压缩,可搭配-C(大写)将压缩包解压到指定目录
-j # 通过 bzip2 的支持进行压缩/解压缩, 此时文件扩展名最好为 *.tar.bz2
-z # 通过 gzip 的支持进行压缩/解压缩, 此时文件扩展名最好为 *.tar.gz
-v # 在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f # -f 后面要立刻接要打包、压缩或解压的文件(.*.tar/*.tar.gz/*.tar.bz2)
-C(大写) # 将压缩包解压到指定目录
eg:将整个 /etc 目录下的文件全部打包
tar -cvf /tmp/etc.tar /etc # 仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc # 打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc # 打包后,以 bzip2 压缩
3、解压命令总结
# tar 解压命令
*.tar: 用 tar -xvf 解压
*.tar.bz2: 用 tar -jxvf 解压
*.tar.xz: 用 tar -Jxvf 解压
*.tar.gz || *.tgz: 用 tar -zxvf 解压 # tar zxvf /root/etc.tar.gz -C /etc
*.tar.Z: 用 tar -xZf 解压
# gzip 和 bzip2 解压命令
*.gz: 用 gzip -d 或者 gunzip 解压
*.bz2: 用 bzip2 -d 或者用 bunzip2 解压
# uncompress 解压命令
*.Z: 用 uncompress 解压
# unrar 和 unzip 解压命令
*.rar: 用 unrar e 解压
*.zip: 用 unzip 解压 # unzip test.zip -d /root/