第六部分:归档与压缩命令,数据收纳大师
50.tar:打包与解包神器
常用参数
参数 |
作用 |
-c |
创建压缩文件 |
-x |
解开压缩文件 |
-t |
查看压缩包内有哪些文件 |
-z |
用Gzip压缩或解压 |
-j |
用bzip2压缩或解压 -J 使用xz压缩或解压缩 |
-v |
显示压缩或解压的过程 |
-f |
目标文件名 |
-p |
保留原始的权限与属性 |
-P |
使用绝对路径来压缩 |
-C |
指定解压到的目录 |
# -c:创建打包文件:tar -cvf archive.tar 文件/目录
意思是创建一个名叫archive.tar的文件包,原文件不变
打包并压缩:
# -z:使用 gzip 压缩
Gzip算法:tar -czvf archive.tar.gz 文件/目录
Bzip2算法:tar -cjvf archive.tar.bz2 文件/目录
Xz算法:tar -cJvf archive.tar.xz 文件/目录
# -x:解压文件
解包:tar -xvf archive.tar 可以解压tar打包的文件。
指定解压目录 tar -xvf archive -C 路径
51.zip 和 unzip:轻松压缩与解压
“压缩和解压 zip 文件的工具。”
用法:
①压缩:zip archive.zip 文件
zip-r archive.zip 目录
将 文件或者目录 压缩为 archive.zip。
②解压:unzip archive.zip
52.gzip 和 gunzip:快速压缩与解压
只能压缩或解压单个文件,不能压缩目录
①gzip:压缩文件
用法:gzip 文件名
gzip --help
-c, --stdout 写入标准输出,保持原始文件不变
-d, --decompress 解压缩
-f, --force 强制覆盖输出文件并压缩链接
-h, --help 显示此帮助信息
-l, --list 列出压缩文件的内容
-L, --license 显示软件许可证
-n, --no-name 不保存或恢复原始名称和时间戳
-N, --name 保存或恢复原始名称和时间戳
-q, --quiet 抑制所有警告
-r, --recursive 对目录进行递归操作
-S, --suffix=SUF 在压缩文件上使用后缀 SUF
-t, --test 测试压缩文件的完整性
-v, --verbose 详细模式
-V, --version 显示版本号
-1, --fast 更快地压缩
-9, --best 更好地压缩
--rsyncable 创建适合 rsync 的归档文件
压缩单个文件:
gzip file.txt
压缩后生成 file.txt.gz,原文件会被替换。
保留原文件,生成压缩文件:
gzip -k file.txt
-k:保留原文件,压缩结果为 file.txt.gz。
如果旧版Linux不支持使用gzip -k,那么使用 gzip -c 结合重定向
这是最通用的方法,几乎所有 Linux 系统都支持:
gzip -c file.txt > file.txt.gz
解释:
-c 选项将压缩结果输出到标准输出(stdout),而不是直接覆盖原文件。
> 将标准输出重定向到新文件 file.txt.gz,原文件 file.txt 保持不变。
②gunzip/gzip -d:解压文件
用法:gunzip 文件名.gz
解压文件:
gunzip file.txt.gz
解压后恢复为 file.txt。
如果旧版Linux不支持使用gunzip -k保留原文件,那么可以使用 zcat 结合重定向:
zcat file.txt.gz > file.txt
或者
gunzip -c file.txt.gz > file.txt
解释:
-c 选项将压缩结果输出到标准输出(stdout),而不是直接覆盖原文件。
> 将标准输出重定向到新文件 file.txt.gz,原文件 file.txt 保持不变。
工具 |
tar |
zip |
gzip |
功能定位 |
文件归档(打包)工具 |
打包 + 压缩一体化工具 |
纯压缩工具 |
文件结构 |
仅打包,生成 .tar 文件 |
打包并压缩,生成 .zip 文件 |
压缩单个文件,生成 .gz 文件 |
兼容性 |
Linux/Unix 系统 |
跨平台(Windows/Linux/Mac) |
Linux/Unix 系统 |
优势 |
1. 保留完整文件元数据(权限、时间戳) |
1. 无需额外工具,直接压缩 + 打包 |
1. 压缩 / 解压速度极快 |
局限 |
1. 单独使用时不压缩 |
1. 压缩率低于 gzip+tar 组合 |
1. 仅支持单个文件压缩 |