第8章 归档和压缩
所属:第二部分 使用文件 来源:Linux命令速查手册
归档是把多个文件打包成一个文件,压缩是减小文件体积。两者经常结合使用。
8.1 用zip归档和压缩文件
zip archive.zip file1 file2
zip -r archive.zip directory/创建zip压缩包。
-r递归打包目录- zip格式跨平台好,Windows/Mac都能直接打开
8.2 用zip获得最好的压缩效果
zip -9 archive.zip files压缩级别:-0(不压缩,最快)到 -9(最大压缩,最慢),默认 -6。
8.3 用密码保护压缩的Zip文档
zip -e archive.zip files
zip --encrypt archive.zip files加密压缩,解压需要密码。
⚠️ zip的加密强度不高,敏感数据建议用更专业的加密工具。
8.4 解压文件
unzip archive.zip
unzip archive.zip -d /path/to/extract/解压zip文件。-d 指定解压目录。
8.5 列出将要解压的文件
unzip -l archive.zip列出压缩包内容,不解压。
8.6 测试将要解压的文件
unzip -t archive.zip测试压缩包完整性,检查文件是否损坏。
8.7 用gzip归档和压缩文件
gzip filename压缩单个文件,生成 .gz 文件。
⚠️ 注意:gzip会替换原文件!压缩后原文件消失,只剩 .gz。
gzip只能压缩单个文件,要打包多个文件先用tar。
8.8 用gzip递归式地归档和压缩文件
gzip -r directory
gzip --recursive directory递归压缩目录下所有文件(每个文件单独压缩成.gz)。
8.9 用gzip获得最好的压缩效果
gzip -9 filename级别1(最快)到9(最小),默认6。
保留原文件:
gzip -c filename > filename.gz8.10 解压用gzip压缩的文件
gunzip filename.gz
gzip -d filename.gz解压,同样会替换 .gz 文件。
8.11 测试将要用gunzip解压的文件
gzip -t filename.gz测试完整性。
不解压查看内容:
zcat filename.gz
zless filename.gz8.12 用bzip2归档和压缩文件
bzip2 filenamebzip2压缩率比gzip更高,但速度更慢。生成 .bz2 文件。
适合压缩大文件,节省空间优先的场景。
8.13 用bzip2获得最好的压缩效果
bzip2 -9 filename级别1到9,默认9。
8.14 解压用bzip2压缩的文件
bunzip2 filename.bz2
bzip2 -d filename.bz28.15 测试将要用bunzip解压的文件
bzip2 -t filename.bz2不解压查看:
bzcat filename.bz2
bzless filename.bz28.16 用tar归档文件
tar -cf archive.tar files/
tar --create --file=archive.tar files/创建tar归档(只打包,不压缩)。
-c创建(create)-f指定文件名(file),必须放在最后,后面紧跟文件名-v显示过程(verbose)
8.17 用tar和gzip归档和压缩文件
tar.gz (tgz)
tar -czf archive.tar.gz files/
tar -czf archive.tgz files/-z使用gzip压缩
tar.bz2 (tbz2)
tar -cjf archive.tar.bz2 files/
tar -cjf archive.tbz2 files/-j使用bzip2压缩
tar.xz
tar -cJf archive.tar.xz files/-J使用xz压缩(压缩率最高,速度最慢)
8.18 测试将要解开和解压的tarball
tar -tzf archive.tar.gz # 列出tar.gz内容
tar -tjf archive.tar.bz2 # 列出tar.bz2内容
tar -tf archive.tar # 列出普通tar内容-t列出内容(list)
8.19 解开和解压tarball
tar -xzf archive.tar.gz # 解压tar.gz
tar -xjf archive.tar.bz2 # 解压tar.bz2
tar -xf archive.tar # 解压普通tar
tar -xf archive.tar.xz # 解压tar.xz(自动识别格式)-x提取(extract)
常用选项组合:
tar -xzvf archive.tar.gz # 解压并显示过程
tar -xf archive.tar.gz -C /tmp/ # 解压到指定目录新版tar可以自动识别压缩格式,
-xf通吃各种格式。
8.20 小结
压缩工具对比
| 格式 | 工具 | 扩展名 | 压缩率 | 速度 | 跨平台 |
|---|---|---|---|---|---|
| zip | zip/unzip | .zip | 一般 | 快 | ✅ 好 |
| gzip | gzip/gunzip | .gz | 一般 | 快 | 一般 |
| bzip2 | bzip2/bunzip2 | .bz2 | 高 | 慢 | 一般 |
| xz | xz/unxz | .xz | 最高 | 最慢 | 一般 |
tar 选项速记
| 选项 | 功能 |
|---|---|
-c | 创建(create) |
-x | 提取(extract) |
-t | 列出(list) |
-f | 指定文件(file) |
-v | 显示过程(verbose) |
-z | gzip格式 |
-j | bzip2格式 |
-J | xz格式 |
-C | 指定目标目录 |
最常用命令
# 打包压缩
tar -czf output.tar.gz /path/to/files/
# 解压
tar -xf archive.tar.gz
# 查看内容
tar -tf archive.tar.gz