打包和压缩的区别
打包
- 定义: 将多个文件合并成一个文件,以减少文件个数。
- 作用: 减少传输次数,也可以称为归档。
- 术语: 打包 (pack)、解包 (unpack)。
压缩
- 定义: 缩小一个文件的体积,以减少占用空间。
- 作用: 减少文件体积。
- 术语: 压缩 (compress)、解压缩 (decompress)。
- 压缩率: 压缩后体积/压缩前体积。
- 其他作用: 可以添加密码保护。
注意: 打包、解包、压缩、解压缩都需要消耗时间。
常见压缩格式
- HTTP: gzip
- gzip、deflate (zlib格式)、br (Brotli)、identity (不压缩)
- Windows: zip、rar、7z
- 常用工具: WinRAR, 360压缩, Bandizip, 7-Zip
- Linux: gzip (tar.gz=.tgz)、bzip2 (.bz2)、zip
tar命令
常用选项
选项 | 作用 | 说明 |
---|---|---|
-c |
创建打包文件 | create |
-v |
显示打包或解包的详细信息 | verbose |
-f |
指定文件名称,必须放到所有选项后面 | file |
-z |
压缩或解压缩 (.gz) | |
-j |
压缩或解压缩 (.bz2) | |
-x |
解包 | |
-C |
解压缩到指定目录 |
注意:
-
代表详细信息的显示,与其他选项组合使用。-z
和-j
分别对应 gzip 和 bzip2 进行压缩/解压缩。x
代表解包,与创建打包 (c
) 相反。
用法示例
操作 | 命令 |
---|---|
打包(不压缩) | tar -cvf test.tar test/ |
解包 | tar -xvf test.tar |
打包并gz压缩 | tar -zcvf test.tar.gz test/ |
解压(gz) | tar -zxvf test.tar.gz |
解压到指定目录(gz) | tar -zxvf test.tar.gz -C aaa |
打包并bz2压缩 | tar -jcvf test.tar.bz2 test/ |
解压(bz2) | tar -jxvf test.tar.bz2 |
解压到指定目录(bz2) | tar -jxvf test.tar.bz2 -C aaa |
请注意:
-C
选项用于指定解压缩的目标目录。-z
和-j
分别用于指定使用 gzip 和 bzip2 进行压缩/解压缩。
其他操作
操作类型 | 命令 | 说明 |
---|---|---|
仅查看不解压 | tar -tf test.tar |
列出压缩包内的所有文件名,而不解压缩包。 |
追加文件 | tar -rf test.tar *.gif |
向已存在的压缩包中追加所有 .gif 文件。 |
替换文件 | tar -uf test.tar huaji.gif |
更新压缩包中的 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 - |
解密并解压文件。 |
上述命令操作的详细说明:
- 1、仅查看不解压:
- tar -tf test.tar:列出压缩包 test.tar 内的所有文件名,而不解压缩包。
- 2、追加文件:
- tar -rf test.tar *.gif:向已存在的压缩包 test.tar 中追加所有 .gif 文件。
- 3、替换文件:
- tar -uf test.tar huaji.gif:更新压缩包 test.tar 中的 huaji.gif 文件,如果该文件不存在则添加。
- 4、加密:
- tar -zcf - *.txt | openssl des3 -salt -k 123456 | dd of=test.des3:首先将所有 .txt 文件压缩并通过 tar 打包,随后使用 openssl 进行 des3 加密,最后使用 dd 命令将加密内容输出到 test.des3 文件中。
- 5、解密:
- dd if=test.des3 | openssl des3 -d -k 123456 | tar zxf -:首先使用 dd 读取加密文件 test.des3,然后通过 openssl 解密,最后使用 tar 解压缩。
zip命令
用法示例
操作类型 | 命令 | 说明 |
---|---|---|
压缩 | zip test.zip *.txt |
将所有 .txt 文件压缩成 test.zip。 |
解压缩 | unzip test.zip |
解压缩 test.zip 文件到当前目录。 |
解压缩到指定目录 | unzip test.zip -d bbb |
解压缩 test.zip 文件到指定目录 bbb,若目录不存在则创建。 |
添加密码 | zip -rP 123456 test.zip *.txt |
将所有 .txt 文件压缩成 test.zip 并添加密码 123456。 |
使用密码解压 | unzip -P 123456 test.zip |
使用密码 123456 解压缩 test.zip 文件。 |
上述命令操作的详细说明:
- 1、压缩:
- zip test.zip *.txt:将当前目录下所有 .txt 文件压缩成一个名为 test.zip 的压缩包。
- 2、解压缩:
- unzip test.zip:解压缩 test.zip 文件到当前目录。
- 3、解压缩到指定目录:
- unzip test.zip -d bbb:解压缩 test.zip 文件到指定的目录 bbb。如果目录 bbb 不存在,将会创建该目录。
- 4、添加密码:
- zip -rP 123456 test.zip *.txt:将所有 .txt 文件压缩成 test.zip,并设置密码为 123456。
- 5、使用密码解压:
- unzip -P 123456 test.zip:使用密码 123456 解压缩 test.zip 文件。