[!quote] 打包 打包 是将多个文件合并成一个文件,并不会减少文件的大小
[!quote] 压缩 压缩 是减少某个文件的大小
[!hint] 常见的打包,压缩格式
- 打包文件
*.tartar 程序打包的文件- 压缩文件
*.rarrar 程序压缩的文件*.7z7zip 程序压缩的文件*.gzgzip 程序压缩的文件*.xzxz 程序压缩的文件*.bz2bzip2 程序压缩的文件- 打包压缩文件
*.zipzip 程序打包压缩的文件*.tar.gztar 打包,gzip 程序压缩的文件*.tar.xztar 打包,xz 程序压缩的文件*.tar.bz2tar 打包,bzip2 程序压缩的文件*.tar.7ztar 打包,7z 程序压缩的文件
zip
压缩
zip 创建的压缩文件的名称 被压缩文件的绝对路径-r递归压缩包含该目录的子目录和文件-q静默操作【不在终端显示任何消息】-o将输出文件放到当前目录-*数字表示压缩级别【1 ~ 9】,9 的压缩后体积最小,但耗时最长-x 文件将要被压缩的文件中的某个文件排除,不进行压缩
bash
zip -rqo shiyanlou.zip /home/shiyanlou/Desktop加密 zip 包
-e创建加密压缩包
bash
zip -reo shiyanlou_encryption.zip /home/shiyanlou/Desktop跨平台兼容
-l解决 Linux 和 Windows 上换行符不兼容问题,将 Linux 上的LF,转换成 Windows 上的CR + LF
bash
zip -rlo shiyanlou.zip /home/shiyanlou/Desktop解压
unzip 要被解压缩的文件-q静默解压-d 目录将解压缩后的文件放到指定的目录-l不解压缩,只查看压缩包的内容
bash
# 将shiyanlou.zip文件,解压缩到ziptest目录下
unzip -d ziptest shiyanlou.zip
unzip -l shiyanlou.zip跨平台兼容
-o 编码类型解决由于编码方式不一致【Windows 使用 GBK……,Linux 使用 UTF-8】,出现的中文乱码问题
bash
# 在Linux中解压缩Windows的压缩文件
unzip -O GBK 中文压缩文件.ziptar
打包
tar 被打包的文件目录-P保留原始压缩路径最前面的/【保证了解包文件后的绝对路径】-p保留文件的属性【所有者,可读可写权限……】-c创建新的打包文件【打包必需参数】-f 文件名指定打包后的文件【打包必需参数】-h打包时,如果遇到符号链接,则打包符号链接背后的真实文件
[!quote] 符号链接 符号链接类似快捷方式,它指向文件系统中的另一个文件,当你尝试打开一个符号链接时,你会被自动重定向到这个链接指向的那个文件
bash
tar -Pcf shiyanlou.tar /home/shiyanlou/Desktop解包
-x解包文件-f 文件名指定要解包的文件-p保留文件的属性【所有者,可读可写权限……】-C 路径将解包后的文件放到哪个路径下-t只查看,不解包
bash
# 将shiyanlou.tar解包到tardir路径下
tar -xf shiyanlou.tar -C tardir
tar -tf shiyanlou.tar压缩,解压缩
-z打包成.tar.gz格式-J打包成.tar.xz格式-j打包成tar.bz2格式
bash
# 压缩
tar -czf shiyanlou.tar.gz /home/shiyanlou/Desktop
# 解压缩
tar -xzf shiyanlou.tar.gz