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

linux命令-压缩-12

大纲

压缩格式生成命令示例解压命令示例特点
.tar.gztar -zcvf archive.tar.gz dir/tar -zxvf archive.tar.gz打包并gzip压缩,支持目录
.tar.bz2tar -jcvf archive.tar.bz2 dir/tar -jxvf archive.tar.bz2打包并bzip2压缩,压缩率更高
.zipzip -r archive.zip dir/unzip archive.zip跨平台格
.jarjar uvf jar包 文件unzip jar包
.rarunrar archive.zip dir/
.gzgzip file.txtgunzip file.txt.gz压缩快,仅单文件,源文件删除
.bz2bzip2 file.txtbunzip2 file.txt.bz2压缩率高于gzip,单文件

tar

  • 参数

    功能选项组合命令示例适用场景
    创建普通归档-cvftar -cvf docs.tar file1.txt dir/仅打包,用于临时整理文件
    gzip 压缩-zcvftar -zcvf data.tar.gz /var/log/平衡压缩速度与体积,最常用
    解压到指定目录-xvf -C 目录tar -xvf docs.tar -C /tmp/extract/避免解压文件散落在当前目录
    保留权限-zcvpftar -zcvpf backup.tar.gz /etc/备份系统文件(保留原权限)
    查看压缩包内容-ztvf(gzip)tar -ztvf data.tar.gz快速确认压缩包内文件清单
  • 示例

    • 创建普通归档

      [root@localhost opt]# tar cfv cfg.tar *.cfg
      grub1.cfg
      grub2.cfg
      grub3.cfg
      [root@localhost opt]# ll -h
      总用量 88K
      -rw-r--r-- 1 root root  40K 112 18:28 cfg.tar
      -rw-r--r-- 1 root root  20K 112 18:28 grub1.cfg
      -rw-r--r-- 1 root root 4.2K 112 17:59 grub2.cfg
      -rw-r--r-- 1 root root 4.2K 112 18:28 grub3.cfg
      
    • gzip 压缩

      # /bin/tar zcf savefile.tar.gz 源文件1 源文件2
      [root@localhost opt]# tar zcf gzcfg.tar.gz *.cfg
      [root@localhost opt]# ll -h
      总用量 92K
      -rw-r--r-- 1 root root  20K 112 18:28 grub1.cfg
      -rw-r--r-- 1 root root 4.2K 112 17:59 grub2.cfg
      -rw-r--r-- 1 root root 4.2K 112 18:28 grub3.cfg
      -rw-r--r-- 1 root root 1.7K 112 18:29 gzcfg.tar.gz  <-- 注意大小
      
    • 解压到指定目录

      [root@localhost opt]# mkdir a
      [root@localhost opt]# tar xf cfg.tar -C a
      [root@localhost opt]# ls a
      grub1.cfg  grub2.cfg  grub3.cfg
      
    • 过滤掉某文件

      • 语法: /bin/tar zcf savefile.tar.gz 源文件1 源文件2 --exclude=logs

      • 用tar打包时想剔除打包目录中的某个子目录或文件:

      • 比如你想打包/home这个目录,但是/home/afish/目录和/home/www/afish.php文件你都不想打包,方法是:

        tar -zcvf home.tar.gz   /home --exclude=/home/afish   --exclude=/home/www/afish.php
        # 如果要排除一个目录是 --exclude=dir1,而不是 --exclude=dir1/
        
    • 不解压查看压缩

      [root@localhost a]# tar zcf savefile.tar.gz *.cfg --exclude=grub4.cfg
      [root@localhost a]# tar -ztvf savefile.tar.gz 
      -rw-r--r-- root/root     20480 2025-11-02 18:28 grub1.cfg
      -rw-r--r-- root/root      4253 2025-11-02 17:59 grub2.cfg
      -rw-r--r-- root/root      4253 2025-11-02 18:28 grub3.cfg
      
    • 压缩文件夹并删除源文件

      [root@localhost opt]# tar zcf 20251102.tar.gz a --remove-files
      [root@localhost opt]# ll -h
      -rw-r--r-- 1 root root 3.7K 112 18:36 20251102.tar.gz[root@localhost opt]# tar ztvf 20251102.tar.gz 
      drwxr-xr-x root/root         0 2025-11-02 18:33 a/
      -rw-r--r-- root/root     20480 2025-11-02 18:28 a/grub1.cfg
      ...
      -rw-r--r-- root/root      1729 2025-11-02 18:33 a/savefile.tar.gz
      
    • 压缩时不带上目录 <–生产用的蛮多

      ⚠️:-C 是临时切换工作目录,-P是绝对路径,在这里只用到-C参数就行了

      • 压缩文件不带目录-标准

        # 备份时会先进入/tmp/temp目录然后在将test打包
        tar zvcf /备份路径/xx.tar.gz -C /tmp/temp/  test/  
        
      • 压缩过滤

        # 这种就是过滤掉 logs下的所有以wrapper.log开头的文件,然后将test给它打包
        tar zvcf /备份路径/xx.tar.gz -C /tmp/temp/ --exclude=logs/wrapper.log* test/  [root@localhost test]# pwd
        /tmp/temp/test
        [root@localhost test]# tree
        .
        ├── a.txt
        ├── b.txt
        └── logs├── wrapper.log.1├── wrapper.log.2└── wrapper.log.3[root@localhost test]# tar zcvf /opt/temp.tar.gz -C /tmp/temp/ --exclude=logs/wrapper.log.* test
        test/
        test/a.txt
        test/b.txt
        test/logs/[root@localhost test]# tar ztf /opt/temp.tar.gz 
        test/
        test/a.txt
        test/b.txt
        test/logs
        
    • 过滤四层 然后压缩data目录

      # 过滤四层 然后压缩data目录
      tar --strip-components=4 -zcf /opt/xx/elasticsearch_data.tar.gz -C /opt/EETRUST/common/elasticsearch data
      

zip

yum -y instll zip unzip

  • 参数

    选项功能描述示例命令
    -r递归压缩目录zip -r archive.zip docs/(压缩 docs 目录及子内容)
    -e加密压缩zip -e secret.zip file.txt (需输入密码)
    -m压缩后删除原文件zip -m temp.zip temp.txt (压缩后删除 temp.txt )
    -x排除指定文件zip -r archive.zip docs/ -x "*.log"(排除 .log 文件)
    -0-9压缩级别(0=不压缩,9=最高压缩)zip -9 large.zip data/(最高压缩率)
  • 示例

    • 压缩文件

      [root@localhost test]# zip x1.zip *adding: a.txt (deflated 92%)adding: b.txt (deflated 92%)# 不加-r就是当前文件
      [root@localhost test]# zip -r xx.zip *adding: a.txt (deflated 92%)adding: b.txt (deflated 92%)...adding: test.zip (stored 0%)
      
    • 添加新文件

      [root@localhost test]# zip -u x1.zip c.txt adding: c.txt (deflated 92%)
      
    • 过滤文件

      # 过滤 test目录所有的 *.log.*文件
      [root@localhost test]# zip -r x2.zip * -x "*.log.*"
      updating: logs/ (stored 0%)adding: a.txt (deflated 92%)adding: b.txt (deflated 92%)
      

unzip

  • 参数

    功能需求zip选项示例unzip选项示例说明
    覆盖现有文件-f(更新文件)-o(自动覆盖)zip无直接覆盖压缩包选项
    不覆盖现有文件(默认不覆盖压缩包内文件)-n(不解压已存在文件)unzip需显式指定保护文件
    安静模式(无输出)-q-q两者通用选项
    加密处理-e(手动输入密码)-P 密码(命令行明文指定,不安全)zip加密更安全(无明文)
  • 示例

    • 加解密

      [root@localhost test]# zip -r x3.zip * -x "*.log.*" -e
      Enter password: 
      Verify password: 
      updating: a.txt (deflated 92%)
      updating: b.txt (deflated 92%)# 解压当前目录, 这里就需要输入密码
      [root@localhost test]# unzip x3.zip 
      Archive:  x3.zip
      [x3.zip] a.txt password: 
      replace a.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
      

jar

仅压缩

  • 示例, 如隐藏tomcat版本号

    • 进入tomcat的lib目录找到catalina.jar文件

      unzip catalina.jar之后会多出两个文件夹
      
    • 进入cd org/apache/catalina/util 编辑配置文件ServerInfo.properties

      将类似以下3行
      server.info=Apache Tomcat/8.5.xx
      server.number=8.5.xx.0
      server.built=Sep 9 2021 18:43:14 UTC
      修改为 info 根据实际名称修改,built写当前时间
      server.info=当前服务名称
      server.number=0.0.0.0
      server.built=2022/09/08
      
    • 压缩回文件

      # 将解压并修改的文件在打回文件内
      jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
      
    • 最后将修改的版本号 在 tomcat/lib下做个记录

      然后 在 tomcat/lib 目录生成 readme.txt 文件将以下内容写入后保存,以备后续查询
      server.info=Apache Tomcat/8.5.xx
      server.number=8.5.xx.0
      server.built=Nov 11 2021 13:14:36 UTC
      

rar

有些国产化机器需要适配包,别折腾了,用zip或tar.gz吧

  • 参数

    功能命令示例及说明
    创建压缩包a(添加)rar a test.rar file1.txt :创建或更新 test.rar ,保留原文件;rar a -r test.rar dir/:递归压缩目录
    解压文件x(带路径)rar x test.rar /home/:保持目录结构解压至指定路径,目标目录需以 / 结尾
    e(当前目录)rar e test.rar :所有文件解压到当前目录,不保留子目录
    更新/删除u(更新)rar u test.rar newfile.txt :添加新文件并更新已有文件
    d(删除)rar d test.rar oldfile.txt :从压缩包中删除文件
    加密压缩-p 选项rar a -p123 test.rar secret.txt :用密码“123”加密,解压需输入密码

gzip

  • 参数

    参数功能描述示例命令
    -d, --decompress解压缩文件(等同于gunzip)gzip -d filename.txt.gzgunzip filename.txt.gz
    -r, --recursive递归压缩目录下所有文件gzip -r /path/to/directory
    -v, --verbose显示压缩/解压详细信息gzip -v filename.txt
    -1至-9压缩级别(1最快,9最高压缩率,默认6)gzip -9 filename.txt (最高压缩)
    -t, --test测试压缩文件完整性gzip -t filename.txt.gz
  • 示例

    • 正常压缩

      # 如果不加任何参数,会删除原始文件
      [root@localhost test]# gzip g1.tgz *.txt
      
    • 解压缩文件

      [root@localhost test]# gzip -d a.txt.gz 
      
    • 递归压缩目录

      [root@localhost test]# gzip -r logs/
      -rw-r--r-- 1 root root 1582 112 18:44 wrapper.log.1.gz
      -rw-r--r-- 1 root root 1582 112 18:44 wrapper.log.2.gz
      -rw-r--r-- 1 root root 1582 112 18:44 wrapper.log.3.gz
      
    • 查看压缩内文件

      [root@localhost test]# gzip -l logs/wrapper.log.1.gz compressed        uncompressed  ratio uncompressed_name1582               20480  92.4% logs/wrapper.log.1
      

后续有示例在补充

http://www.dtcms.com/a/562178.html

相关文章:

  • 手机网站的视频怎么才能下载wordpress top0.9主题
  • 专门做房地产设计的图片网站上谷网络网站建设
  • 网站上怎么做弹目提醒定制app开发平台
  • 下载 | Win11 25H2 正式版更新!(ISO映像、年度更新版本、26200.7019、Windows 11)
  • Java的Collection接口和常用方法(Iterator和增强for)
  • 赣州网站建设方案婚纱官网
  • 巨腾外贸网站建设网站有什么功能
  • C++ 的关键字(保留字)完整介绍
  • 诸城网站建设诸城校园招生网站建设的简报
  • JS面试基础(2) 流程控制语句与函数及其作用域
  • 构建最新的Linux系统
  • 2026年EAAI SCI1区TOP,具有维度适应性遗传的差分进化算法,深度解析+性能实测
  • 为什么做这个网站反馈问题画册专业设计公司
  • 找做网站公司需要注意什么条件网站建设的电话销售
  • 网站备案上海pos机网站模板
  • 基于C#的贵州省黔北地区乡村避暑生活共享平台设计与实现(源码+论文+部署+安装)
  • DevOps(devops/k8s/docker/Linux)学习笔记-3
  • 中恒建设职业技术培训学校网站网页编辑打印工具
  • 阿里云医疗网站建设手递手个人求职信息网
  • OpenHarmony Location Kit技术详解:定位、地理围栏与编码转换
  • 个人网站做的类型如何设置企业网站
  • JVM Full GC 优化指南
  • 如何在百度网站收录提交入口快速开发平台破解版
  • Linux系统编程——进程退出及状态回收
  • j动态加载网站开发wordpress域名如何申请
  • 响应式设计网站给别人做网站会连累自己吗
  • 赣榆网站建设xxiaoseo广西美丽乡村建设网站
  • 3、电机控制——VF控制学习总结
  • 多表分页联查——EF Core方式和Dapper方式
  • 做网站要找什么公司信息门户网站制作费用