在Linux系统中,打包(Archiving)和压缩(Compression)是两个相关但不同的概念,主要区别如下:
tar
:最常用的打包工具,生成 .tar
文件。cpio
、ar
等(较少用)。bash
# 打包目录为 archive.tar(体积不变)
tar -cvf archive.tar /path/to/dir
gzip
(.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文件!