当前位置: 首页 > news >正文

15、Linux 打包压缩命令

打包(将多个文件/目录合并为一个文件)和压缩(减小文件体积)是日常管理文件的常用操作。常用工具包括 tar(主要用于打包,可结合压缩算法)、gzipbzip2(单独压缩工具)以及跨平台的 zip

1. 核心概念:打包 vs 压缩

  • 打包:将多个文件或目录合并成一个“包文件”(如 archive.tar),不改变文件大小,仅方便管理
  • 压缩:通过算法减小文件体积(如 file.txtfile.txt.gz),通常针对单个文件;若要压缩多个文件/目录,需先打包再压缩

2. zipunzip(跨平台压缩,Windows/Linux 通用)

zip 格式支持打包+压缩,且跨平台兼容性好(Windows 也可直接解压),适合需要与其他系统交换文件的场景

a. 安装(部分系统默认不安装)

# Debian/Ubuntu
sudo apt install zip unzip# RedHat/CentOS
sudo yum install zip unzip

b. 常用命令

  1. 创建 zip 压缩包

    # 压缩单个文件
    zip file.zip file.txt# 递归压缩目录(-r 选项)
    zip -r dir.zip dir1/  # 压缩 dir1 目录及所有子文件# 压缩时显示过程(-v)并设置压缩级别(-1 最快,-9 最优,默认 -6)
    zip -r -9 -v archive.zip dir1/ file1.txt
    
  2. 解压 zip 压缩包

    # 解压到当前目录
    unzip archive.zip# 解压到指定目录(-d 选项)
    unzip archive.zip -d /tmp# 只解压 .png 的文件到当前目录
    unzip png.zip "*.png"# 只解压出压缩包中的某个文件
    unzip png.zip png/szj.jpg# 查看压缩包内容(不解压)
    unzip -l archive.zip
    
  3. 解压时排除指定文件

    unzip archive.zip -x "*.log"  # 解压时排除所有 .log 文件
    

3. 单独压缩工具(仅压缩单个文件)

gzipbzip2 是独立的压缩工具,只能压缩单个文件(无法直接压缩目录),通常与 tar 配合使用。若单独使用,会替换原文件(生成压缩文件,删除原文件)

a. gzip(速度快,压缩率中等)

  • 压缩文件:gzip 文件名(生成 .gz 压缩文件,删除原文件)
  • 解压文件:gunzip 压缩文件名.gzgzip -d 压缩文件名.gz
  • 示例:
    gzip file.txt  # 压缩为 file.txt.gz,原 file.txt 被删除
    gzip -c file.txt > file.txt.gz # 压缩 -c 会变成二进制,然后通过 > 写入 file.txt.gz,原 file.txt 不被删除gunzip file.txt.gz  # 解压为 file.txt,原 .gz 文件被删除
    

b. bzip2(压缩率高于 gzip,速度稍慢)

  • 压缩文件:bzip2 文件名(生成 .bz2 压缩文件)
  • 解压文件:bunzip2 压缩文件名.bz2bzip2 -d 压缩文件名.bz2
  • 示例:
    bzip2 data.csv  # 压缩为 data.csv.bz2
    bunzip2 data.csv.bz2  # 解压为 data.csv
    

4. tar 命令:打包+压缩(最常用)

tar(tape archive)是 Linux 中最核心的打包工具,本身仅负责打包,但可通过选项调用 gzipbzip2xz 等压缩算法,实现“打包+压缩”一步完成。

a. 基本语法

# 创建压缩包(打包+压缩)
tar [选项] 压缩包名称.tar.xxx 源文件/目录  # 解压压缩包
tar [选项] 压缩包名称.tar.xxx [-C 目标目录]  # -C 可选,指定解压到的目录(默认当前目录)

b. 常用选项

选项组合压缩算法压缩包后缀功能说明(创建/解压通用)
-czvf/-xzvfgzip.tar.gz-c 创建,-x 解压,-z 用 gzip 算法,-v 显示过程,-f 指定压缩包
-cjvf/-xjvfbzip2.tar.bz2-j 用 bzip2 算法(压缩率比 gzip 高,速度稍慢)

i. 示例:创建压缩包

# 1. 用 gzip 算法打包并压缩 dir1、file1.txt 为 archive.tar.gz
tar -czvf archive.tar.gz dir1/ file1.txt
# 输出:显示打包的文件列表(因 -v 选项)# 2. 用 bzip2 算法打包压缩 /home/user 目录(仅打包,不压缩子目录软链接)
tar -cjvf user.tar.bz2 /home/user

ii. 示例:解压压缩包

# 1. 解压 archive.tar.gz 到当前目录
tar -xzvf archive.tar.gz# 2. 解压 user.tar.bz2 到 /tmp 目录(-C 指定目标目录)
tar -xjvf user.tar.bz2 -C /tmp

iii. 其他实用操作

  • 查看压缩包内容(不解压)

    tar -tzf archive.tar.gz  # 查看 tar.gz 包内文件
    tar -tjf user.tar.bz2    # 查看 tar.bz2 包内文件
    
  • 打包时排除指定文件/目录

    # 打包 dir1 时,排除 dir1/temp/ 和 *.swp 临时文件
    tar -czvf archive.tar.gz dir1/ --exclude=dir1/temp/ --exclude=*.swp  
    
  • 解压时指定解压文件

    # 解压 archive.tar.gz 时,指定只解压 file1.txt 出来
    tar -xzvf archive.tar.gz ./file1.txt
    

5. 压缩格式对比与选择

格式工具组合压缩率速度跨平台性适用场景
.tar.gztar + gzip一般日常备份、快速压缩
.tar.bz2tar + bzip2较高一般对压缩率有要求,可接受稍慢速度
.zipzip/unzip极好需与Windows交换文件
http://www.dtcms.com/a/592947.html

相关文章:

  • 网站后台源代码更改营销广告策划方案
  • 数据库迁移革命:金仓KReplay如何用真实负载回放技术缩短3周测试周期
  • 网站开发搭建合同范本企业软件解决方案
  • Java 中 Arrays.sort() 的底层实现
  • MPAndroidChart 双柱分组图:解决 X 轴标签无法居中问题及 UI 宽度计算指南
  • 政务外网终端一机两用安全管控解决方案
  • 数字华容道游戏
  • M4-R1 开源鸿蒙(OpenHarmory)开发板丨串口调试助手实战案例
  • 建材做网站好吗破解插件有后门wordpress
  • 旅游网站建设流程步骤怎么自己做礼品网站
  • C语言--文件读写函数的使用,对文件读写知识有了更深的了解。C语言--文件读写函数的使用,对文件读写知识有了更深的了解。
  • 数据结构示例代码
  • 数字化工厂:基于层级模型的智能制造新范式
  • C语言--变量(全局变量、局部变量、初始化)
  • 羊驼送洗后因毛发未吹干致失温死亡,物联网技术助力防范宠物洗澡失温事故
  • Raylib 基本绘图操作
  • (Arxiv-2025)BINDWEAVE:通过跨模态整合实现主体一致性的视频生成
  • 怎么做会员积分网站建网站商城有哪些公司
  • 网站如何验证登陆状态广州专业做网页的公司
  • MySQL的增删改查功能合集
  • Oracle数据块编辑工具( Oracle Block Editor Tool)-obet
  • 什么是量子纠缠?大白话
  • 用服务器自建 RustDesk 远程控制平台
  • 新手做网站如何被百度快速收录教程
  • 基于java技术的田径俱乐部网站的设计与实现
  • 第二十四篇:C++模板元编程入门:constexpr与type_traits的编译期魔法
  • C语言数组作为函数参数(3种写法,附带实例)
  • SPARQL文档导读
  • JavaEE初阶——JUC的工具类和死锁
  • 如何将自己做的网站发布到网上ui展示 网站