Linux 系统中打包与压缩

发布于:2025-04-12 ⋅ 阅读:(56) ⋅ 点赞:(0)

以下是 Linux 系统中 打包与压缩 的核心操作指南,涵盖常用命令、格式对比及典型场景应用:


一、核心概念

  1. 打包(Archiving)

    • 将多个文件或目录合并为一个文件(如 .tar),不改变文件体积
    • 常用工具tar(Tape Archive)。
  2. 压缩(Compression)

    • 通过算法减少文件体积(如 .gz.bz2),牺牲时间换空间
    • 常用工具gzipbzip2xzzip

二、常用打包与压缩命令

1. tar(打包核心工具)
  • 基础用法

    # 打包目录为 .tar 文件
    tar -cvf archive.tar /path/to/dir
    
    # 打包文件(保留权限)
    tar -cvpf backup.tar file1 config.conf
    
  • 常用选项

    选项 说明
    -c 创建归档文件
    -x 解包
    -v 显示详细过程(Verbose)
    -f 指定文件名
    -p 保留文件权限
    -z/j/J 调用 gzip/bzip2/xz 压缩

2. 压缩格式与组合命令
(1) tar.gz(或 .tgz
  • 高压缩率,通用性强
    # 将 /path/to/dir打包并压缩为 archive.tar.gz
    tar -czvf archive.tar.gz /path/to/dir
    
    # 解压  archive.tar.gz到当前目录
    tar -xzvf archive.tar.gz
    
    #解压.tar.gz到指定目录“../server”
    tar zxvf archive.tar.gz -C ../server
    
    
(2) tar.bz2
  • 更高压缩率,速度较慢
    # 打包并压缩为 .tar.bz2
    tar -cjvf archive.tar.bz2 /path/to/dir
    
    # 解压 .tar.bz2
    tar -xjvf archive.tar.bz2
    
(3) tar.xz
  • 最高压缩率,速度最慢
    # 打包并压缩为 .tar.xz
    tar -cJvf archive.tar.xz /path/to/dir
    
    # 解压 .tar.xz
    tar -xJvf archive.tar.xz
    
(4) zip / unzip
  • 跨平台兼容性好
    # 压缩目录(需安装 zip)
    zip -r archive.zip /path/to/dir
    
    # 解压 .zip
    unzip archive.zip
    

三、其他实用工具

1. gzip / gunzip
  • 仅压缩单个文件(不打包)
    gzip file.txt        # 生成 file.txt.gz,原文件被删除
    gunzip file.txt.gz   # 解压恢复 file.txt
    gzip -k file.txt     # 保留原文件
    
2. bzip2 / bunzip2
  • 压缩率高于 gzip
    bzip2 large_log.log  # 生成 large_log.log.bz2
    bunzip2 large_log.log.bz2
    
3. 7z(高压缩率工具)
  • 支持分卷压缩、加密等高级功能
    # 安装 p7zip
    sudo apt install p7zip-full  # Debian/Ubuntu
    sudo dnf install p7zip-plugins # Fedora
    
    # 压缩为 .7z
    7z a archive.7z /path/to/dir
    
    # 解压 .7z
    7z x archive.7z
    

四、查看与验证

1. 查看压缩包内容
# 查看 tar.gz 内容
tar -tzvf archive.tar.gz

# 查看 zip 内容
unzip -l archive.zip

# 查看 gzip 压缩文件内容(不解压)
zcat file.txt.gz
2. 校验压缩包完整性
# 生成校验值
sha256sum archive.tar.gz > checksum.txt

# 验证文件
sha256sum -c checksum.txt

五、典型场景与推荐命令

场景 推荐命令 说明
快速压缩单个文件 gzip file.txt 生成 .gz 文件
打包目录并压缩 tar -czvf dir.tar.gz dir/ 平衡速度与压缩率
高压缩率备份大文件 tar -cJvf backup.tar.xz /data 牺牲时间换取最大压缩率
跨平台共享文件 zip -r share.zip project/ 兼容 Windows/macOS
实时监控日志压缩 `tail -f log.txt gzip > log.gz`

六、注意事项

  1. 压缩层级选择
    • 日常使用 .tar.gz.zip 足够。
    • 冷数据归档可选 .tar.xz.7z
  2. 保留原文件:添加 -k 参数(如 gzip -k)。
  3. 分卷压缩:处理超大文件时用 split7z 分卷。
    split -b 100M large_file.tar.gz part_  # 分割为 100MB 每个文件
    

网站公告

今日签到

点亮在社区的每一天
去签到