课程大纲

[!todo]

  1. 打包和压缩的区别
  2. 常见压缩格式
  3. tar 命令
  4. zip 命令

打包和压缩的区别

打包:多个文件变成一个文件——减少文件个数
压缩:缩小一个文件的体积——减少文件体积

打包

打包/解包 pack/unpack
打包的作用是减少传输次数或者用来归档存储

压缩

压缩/解压 compress/decompress

图片: BMP、GIF、PNG、JPEG、JPG
音频: APE、FLAC、MP3
视频: RMVB、AVI、MP4
日常接触的常用格式都是经过压缩
压缩的本质是减少重复的内容

压缩率: 压缩后体积/压缩前体积

其他作用

添加密码

注意:打包、解包、压缩、解压都需要消耗时间

常见压缩格式

HTTP: gzip

gzip、deflate(zlib的格式)、br(Brotli)、identity(不压缩)

Windows: zip、rar、7z

winrar、360压缩、bandizip、7zip

Linux: gzip (tar.gz=.tgz) 、bzip2 (.bz2) 、zip

压缩后体积: tar.bz2 < tgz < tar
压缩解压时间: tar.bz2 > tar > tgz
tar:Tape Archive(打包归档)

tar常用选项

选项 作用 单词
-c 创建打包文件 create
-v 显示打包或解包的详细信息 verbose
-f 指定文件名称,必须放到所有选项后面 file
-z 压缩或解压缩(.gz)
-j 压缩或解压缩(.bz2)
-x 解包
-C 解压缩到指定目录

tar用法示例

操作 命令示例
打包 (不压缩) tar -cvf test.tar test/
解包 tar -xvf test.tar
打包并gz压缩 tar -zcvf test.tar.gz test/
解压 tar -zxvf test.tar.gz
解压到指定目录 tar -zxvf test.tar.gz -C aaa
打包并bz2压缩 tar -jcvf test.tar.bz2 test/
解压 tar -jxvf test.tar.bz2 test/
解压到指定目录 tar -jxvf test.tar.bz2 test/ -C aaa

tar其他操作

操作 命令示例
仅查看不解压 tar -tf test.tar
追加文件 tar -rf test.tar *.gif
替换文件 tar -uf test.tar huaji.gif
加密 `tar -zcf - *.txt openssl des3 -salt -k 123456 dd of=test.des3`
解密 `dd if=test.des3 openssl des3 -d -k 123456 tar zxf -`

zip用法示例

操作 命令示例
压缩 zip test.zip *.txt
解压缩 unzip test.zip
解压缩到指定目录 unzip test.zip -d bbb
添加密码 zip -rP 123456 test.zip *.txt
使用密码解压 unzip -P 123456 test.zip