两个概念分清楚

  • 打包(archiving):多个文件 → 一个文件(不压缩)
  • 压缩(compression):减小体积

Linux 习惯:tar 打包 + gzip/bzip2/xz 压缩——两步合一。

tar:打包工具(最常用)

# 打包 + gzip 压缩(最常见)
tar -czvf archive.tar.gz folder/
#     ↓
#     c=create, z=gzip, v=verbose, f=file

# 解压
tar -xzvf archive.tar.gz
#     ↓
#     x=extract

# 仅查看不解压
tar -tzvf archive.tar.gz

# 解压到指定目录
tar -xzvf archive.tar.gz -C /tmp/

# 只解压某个文件
tar -xzvf archive.tar.gz folder/file.txt

记法

字母 含义
c create(打包)
x extract(解压)
t list(查看)
z gzip
j bzip2(更慢更小)
J xz(最慢最小)
v verbose(显示文件)
f file(指定文件名,必须

常见后缀

.tar         只打包不压缩
.tar.gz / .tgz   tar + gzip(常用)
.tar.bz2 / .tbz  tar + bzip2
.tar.xz          tar + xz
.zip             zip 格式(跨平台兼容 Windows)
.gz              单文件 gzip

gzip / gunzip:单文件压缩

gzip file.txt         # → file.txt.gz(原文件被替换)
gunzip file.txt.gz    # → file.txt
gzip -k file.txt      # 保留原文件
gzip -d file.txt.gz   # 解压(等同 gunzip)
zcat file.txt.gz      # 不解压直接看内容

zip / unzip:跨平台兼容

发给 Windows 用户优选 zip。

zip -r archive.zip folder/
unzip archive.zip
unzip -l archive.zip          # 列出内容
unzip archive.zip -d /tmp/    # 解压到目录

实战示例

# 备份家目录(排除 cache)
tar --exclude='*/cache/*' -czvf home-backup.tar.gz /home/wadely

# 大目录用 xz 极致压缩
tar -cJvf logs.tar.xz /var/log/

# 不落地直接传到远程
tar -czf - folder/ | ssh user@remote 'tar -xzf - -C /backup/'

# 验证压缩包完整性
gzip -t archive.tar.gz && echo OK

压缩比 / 速度对比(粗略)

工具 速度 压缩比 适合
gzip 日常默认
bzip2 较高 文本日志
xz 最高 长期归档
zstd 极快 现代首选(要装)

新项目可以试试 zstd——速度比 gzip 快,压缩比更好。

sudo apt install zstd
tar --use-compress-program=zstd -cf archive.tar.zst folder/

下一篇:软链接与硬链接的区别。