在Linux系统中,打包(Archiving)和压缩(Compression)是两个相关但不同的概念,主要区别如下:
tar:最常用的打包工具,生成 .tar 文件。cpio、ar 等(较少用)。bash
# 打包目录为 archive.tar(体积不变)
tar -cvf archive.tar /path/to/dirgzip(.gz)、bzip2(.bz2)、xz(.xz)、zip 等。bash
# 直接压缩文件(原文件会被替换)
gzip file.txt # 生成 file.txt.gz典型场景:
# 打包并压缩为 .tar.gz
tar -czvf archive.tar.gz /path/to/dir
# 打包并压缩为 .tar.xz(更高压缩比)
tar -cJvf archive.tar.xz /path/to/dir
.tar.gz / .tgz(tar + gzip).tar.bz2(tar + bzip2).tar.xz(tar + xz).zip(归档+压缩,Windows兼容格式)| 特性 | 打包(如 .tar) |
压缩(如 .gz) |
|---|---|---|
| 体积变化 | 不变(可能略增) | 显著减小 |
| 功能 | 合并文件 | 减小单个/多个文件体积 |
| 常用工具 | tar, cpio |
gzip, bzip2, xz |
| 是否可单独使用 | 是 | 是(但通常配合打包使用) |
gzip 只能单独压缩每个文件,无法保留目录结构。# 解压 .tar.gz
tar -xzvf archive.tar.gz
# 解压 .zip
unzip archive.zip
# 仅查看打包内容(不解压)
tar -tvf archive.tar
理解两者的区别能帮助你更高效地管理Linux文件!