linux系统的压缩、解压详细用法,附代码举例(感觉别人写的都不够好)

news2025/3/15 23:01:42

文章目录

  • zip
    • zip支持的选项有:
    • -A 详细解释
    • -d (对压缩包操作)
    • -e (对压缩文件加密)
    • -f(只更新文件)
    • -g(不显示压缩过程)
    • -r (文件夹必选)
    • -u(对zip操作)
    • -v (很鸡肋没什么用)
    • -x(压缩时排除某些文件)
  • unzip
    • unzip支持的选项有
    • -d 指定目录
    • -l 查看文件
    • -n不覆盖已有文件
    • -o 覆盖已有文件
    • -v
  • tar命令
    • tar支持的选项有
    • -c 压缩
    • -x 解压
    • -t 查看
    • -r 添加
    • --delete 删除
  • 参考文档

zip

zip支持的选项有:

选项说明
-A调整可执行的自动解压缩文件。
-b<工作目录>指定暂时存放文件的目录。
-c替每个被压缩的文件加上注释。
-d从压缩文件内删除指定的文件。
-D压缩文件内不建立目录名称。
-e给压缩文件加密
-f更换较新的文件到压缩文件内。
-F尝试修复已损坏的压缩文件。
-g将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h在线帮助。
-i<范本样式>只压缩符合条件的文件。
-j只保存文件名称及其内容,而不存放任何目录名称。
-J删除压缩文件前面不必要的数据。
-k使用MS-DOS兼容格式的文件名称。
-l压缩文件时,把LF字符置换成LF+CR字符。
-ll压缩文件时,把LF+CR字符置换成LF字符。
-L显示版权信息。
-m将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串>不压缩具有特定字尾字符串的文件。
-o以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q不显示指令执行过程。
-r递归处理,将指定目录下的所有文件和子目录一并处理。
-S包含系统和隐藏文件。
-t<日期时间>把压缩文件的日期设成指定的日期。
-T检查备份文件内的每个文件是否正确无误。
-u此参数的效果和指定"-f"参数类似,但-u不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-v显示指令执行过程或显示版本信息。
-V保存VMS操作系统的文件属性。
-w在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式>压缩时排除符合条件的文件。
-X不保存额外的文件属性。
-y直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z替压缩文件加上注释。
-$保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率>压缩效率是一个介于1-9的数值。

-A 详细解释

  • 作者也没有理解 “调整可执行的自动解压缩文件”是什么意思

-d (对压缩包操作)

  • 压缩文件 cp.zip 中删除文件 a.c
    zip -dv cp.zip a.c 
    
  • 删除压缩文件 cp.zip 中子目录tmp中的文件a.c
    zip -dv cp.zip tmp/a.c 
    

-e (对压缩文件加密)

  • 需要输入两次相同的密码(密码复杂度没有要求)进行加密,输入完才开始压缩
    zip -er temp.zip ljj
    
    #无法对未加密的zip进行加密,下面这个会报错
    zip -e temp.zip
    
  • temp.zip 其他文件都不会被加密,只有查看 ljj.txt 才需要密码
    zip -eu temp.zip ljj.txt
    

-f(只更新文件)

  • 只能更新文件,如果文件不存在不会添加文件
  • 更新压缩包 test.zip 中的 test.txt 文件
    zip -f test.zip test.txt
    

-g(不显示压缩过程)

  • 使用这个参数所有过程都没了,除非报错,报错还是会显示的

-r (文件夹必选)

  • 如果不选这个,打包文件夹打包的文件夹就是空文件夹。只有加上了这个,文件夹下的文件和子目录的文件才会被一起打包
  • 把/home目录下面的mydata目录压缩为mydata.zip:
    zip -r mydata.zip mydata 
    
  • 把/home目录下面的mydata目录和a.txt压缩为mydata.zip:
    zip -r mydata.zip mydata a.txt
    

-u(对zip操作)

  • 如果ljj文件在压缩包中不存在,则添加到压缩包中。如果存在则比较时间,如果时间比较新则更新ljj.txt文件,如果没有比较新则不操作
    zip -u temp.zip ljj.txt
    

-v (很鸡肋没什么用)

  • 显示指令执行过程或显示版本信息。
  • 如果没有-v,只会显示stored。有-v 则会显示in、out、stored
    zip -rv temp.zip ljj
    
    zip -r temp.zip ljj
    
    在这里插入图片描述

-x(压缩时排除某些文件)

  • 压缩时排除 ljj 目录下的 a.txt 文件
    zip -rv temp.zip ljj -x '/ljj/a.txt'
    
  • 压缩时排除 ljj 目录下的 temp目录
    zip -rv temp.zip ljj -x '/ljj/temp/*'
    
    #这种写法是错的,会导致排除失效!!!!!
    zip -rv temp.zip ljj -x '/ljj/temp'
    
  • 压缩时排除 ljj 目录下所有目录下名字含有log的文件和文件夹
    zip -rv temp.zip ljj -x '/ljj/*/*log*'
    

unzip

unzip支持的选项有

选项说明
-a对文本文件进行必要的字符转换。
-b不要对文本文件进行字符转换。
-c将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-C压缩文件中的文件名称区分大小写。
-d<目录>指定文件解压缩后所要存储的目录。
-f更新现有的文件。
-j不处理压缩文件中原有的目录路径。
-l显示压缩文件内所包含的文件。
-L将压缩文件中的全部文件名改为小写。
-M将输出结果送到more程序处理。
-n解压缩时不要覆盖原有的文件。
-o不必先询问用户,unzip执行后覆盖原有文件。
-p与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-P<密码>使用zip的密码选项。
-q执行时不显示任何信息。
-s将文件名中的空白字符转换为底线字符。
-u与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-t检查压缩文件是否正确。
-v执行是时显示详细的信息。
-V保留VMS的文件版本信息。
-x<文件>指定不要处理.zip压缩文件中的哪些文件。
-X解压缩时同时回存文件原来的UID/GID。
-z仅显示压缩文件的备注文字。
-Zunzip -Z等于执行zipinfo指令。
[.zip文件]指定.zip压缩文件。
[文件]指定要处理.zip压缩文件中的哪些文件。

-d 指定目录

  • 将test.zip解压到/tmp目录下,并且覆盖已有文件
    unzip -o test.zip -d /tmp
    

-l 查看文件

  • 查看压缩文件中包含的文件
    unzip -l test.zip
    

-n不覆盖已有文件

  • 将test.zip解压,并且不覆盖已有文件
    unzip -n test.zip
    

-o 覆盖已有文件

  • 将test.zip解压,并且覆盖已有文件
    unzip -o test.zip
    

-v

  • 查看压缩文件目录信息,但是不解压该文件
    unzip -v test.zip
    

tar命令

tar支持的选项有

选项说明
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
-c压缩(建立压缩档案)
-x解压
-t查看内容
-r向压缩归档文件末尾追加文件
-u更新原压缩包中的文件
下面的参数是根据需要在压缩或解压档案时可选的。
-z有gzip属性的
-j有bz2属性的
-Z有compress属性的
-v显示所有过程
-O将文件解开到标准输出
–delete从存档中删除 注意是两个减号。

-c 压缩

  • 压缩当前目录下的tar目录,压缩包的名字叫test.tar.gz
    tar -cvzf test.tar.gz
    
  • 压缩当前目录下的.c为后缀的文件。但是不能压缩以.开头的文件
    tar -cvzf test.tar.gz  ./*.c
    
  • 将tar文件夹下的文件生成一个test.tar归档文件
    tar -cvf test.tar tar
    

-x 解压

  • 解压test.tar.gz到当前目录下面
    tar -xvzf test.tar.gz
    
  • 释放test.tar归档文件中的内容到 当前目录下
    tar  -xvf  test.tar
    

-t 查看

  • 查看当前目录下test.tar.gz压缩文件中的文件
    tar -tvf test.tar.gz
    
  • 查看归档文件中的内容
    tar -tvf test.tar 
    

-r 添加

  • 将test1文件夹中的所有文件,添加到test.tar 归档文件中
    tar -rf test.tar  ./test1
    

–delete 删除

  • 删除test.tar文件中的 a.c文件
    tar -f test.tar --delete a.c
    
  • 删除test.tar文件中的 以.c结尾的文件
    tar -f test.tar --delete *.c
    

参考文档

  • Linux命令 - zip命令
  • Linux命令 - unzip命令
  • Linux命令之压缩zip
  • tar命令的详细解释

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/864551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ECRS工时分析:什么叫标准化作业管理?为什么要进行作业标准化管理

中国自古就有标准化。《孙子兵法》中&#xff0c;孙子训练射箭&#xff0c;射箭的姿势是“标准化操作”&#xff1b;中国武术中的套路是“标准化”&#xff1b;在中国古诗中&#xff0c;字数甚至被“标准化”来打开中国历史&#xff0c;“标准化”作业的例子数不胜数。 而在工厂…

[C语言]深入浅出,带你构建C语言宏观框架

导言&#xff1a; 本文章会带你基本了解C语言&#xff0c;对他有一个感性的认识&#xff0c;对其有一个框架&#xff0c;后期在对其进行更加细致的补充。 文章目录 C语言第一个函数变量局部变量 与 全局变量常量字符串 与 转义字符 头文件分支 与 循环注释数组关键字操作符宏指…

【学习FreeRTOS】第4章——FreeRTOS任务创建与删除

1.任务创建和删除的API函数 任务的创建和删除本质就是调用FreeRTOS的API函数 动态方式创建任务——xTaskCreate()静态方式创建任务——xTaskCreateStatic()删除任务——vTaskDelete() 动态创建任务&#xff1a;任务的任务控制块以及任务的栈空间所需的内存&#xff0c;均由 F…

美团研究院:2022年剧本娱乐行业发展报告(附下载)

关于报告的所有内容&#xff0c;公众【营销人星球】获取下载查看 核心观点 户外赛道本质上迎合了全球共性需求的增长&#xff0c;在全球普遍进入大规模城市化、市场经 随着居民收入水乎提高&#xff0c;中国消费者日益注重精神文化生活&#xff0c;文化娱乐成为人们重要的体闲…

Android的学习系列之Android Studio Setup安装

Android的学习系列之Android Studio Setup安装 [TOC](Android的学习系列之Android Studio Setup安装) 前言Android平台搭建总结 前言 还是项目需要&#xff0c;暂时搭建安卓的运行平台。 Android平台搭建 安装包 双击安装包&#xff0c;进入安装。 下一步 根据自己需求&a…

kinit报错 /etc/host.conf: line 3: bad command `nospoof on‘

kinit报错 /etc/host.conf: line 3: bad command nospoof on’ linux7.5不再支持nospoof命令了, 修改/etc/host.conf注释掉nospoof on即可。

chatGPT小白快速入门培训课程-001

一、前言 本文是《chatGPT小白快速入门培训课程》的第001篇文章&#xff0c;全部内容采用chatGPT和chatGPT开源平替软件生成。完整内容大纲详见&#xff1a;《chatGPT小白快速入门课程大纲》。 本系列文章&#xff0c;参与&#xff1a; AIGC征文活动 #AIGC技术创作内容征文# …

39 printf 的输出到设备层的调试

前言 在前面 printf 的调试 我们只是调试到了 glibc 调用系统调用, 封装了参数 stdout, 带输出的字符缓冲, 以及待输出字符长度 然后内核这边 只是到了 write 的系统调用, 并未向下细看 我们这里 稍微向下 细追一下, 看看 到达设备层面 这里是怎么具体的 impl 的 测试用例…

宋浩线性代数笔记(五)矩阵的对角化

本章的知识点难度和重要程度都是线代中当之无愧的T0级&#xff0c;对于各种杂碎的知识点&#xff0c;多做题复盘才能良好的掌握&#xff0c;良好掌握的关键点在于&#xff1a;所谓的性质A与性质B&#xff0c;是谁推导得谁~

【ultralytics仓库使用自己的数据集训练RT-DETR】

ultralytics仓库使用自己的数据集训练RT-DETR RT-DETR由百度开发&#xff0c;是一款尖端的端到端物体检测器&#xff08;基于transformer架构&#xff09;&#xff0c;在提供实时性能的同时保持高精度。它利用视觉变换器&#xff08;ViT&#xff09;的力量&#xff0c;通过解耦…

MongoDB的下载和安装

一、MongoD下载 下载地址&#xff1a;https://www.mongodb.com/try/download/community 二、安装 因为选择下载的是 .zip 文件&#xff0c;直接跳过安装&#xff0c;一步到位。 选择在任一磁盘创建空文件夹&#xff08;不要使用中文路径&#xff09;&#xff0c;解压之后把文…

关于安卓打包生成aar,jar实现(一)

关于安卓打包生成aar&#xff0c;jar方式 背景 在开发的过程中&#xff0c;主项目引入三方功能的方式有很多&#xff0c;主要是以下几个方面&#xff1a; &#xff08;1&#xff09;直接引入源代码module&#xff08;优点&#xff1a;方便修改源码&#xff0c;易于维护&#…

ChatGLM2-6B在Windows下的微调

ChatGLM2-6B在Windows下的微调 零、重要参考资料 1、ChatGLM2-6B! 我跑通啦&#xff01;本地部署微调&#xff08;windows系统&#xff09;&#xff1a;这是最关键的一篇文章&#xff0c;提供了Windows下的脚本 2、LangChain ChatGLM2-6B 搭建个人专属知识库&#xff1a;提供…

Linux命令200例:tree用于以树状结构显示文件和目录

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

非计算机科班如何丝滑转码?

近年来&#xff0c;很多人想要从其他行业跳槽转入计算机领域。非计算机科班如何丝滑转码&#xff1f; 如何规划才能实现转码&#xff1f; 对于非计算机科班的人来说&#xff0c;想要顺利转码成为计算机相关岗位的从业者&#xff0c;需要经过以下几个步骤&#xff1a; 规划转码…

Linux如何开启指定端口号

本文已收录于专栏 《运维》 目录 概念说明防火墙端口号 提供服务具体分类具体操作防火墙操作端口号操作 总结提升 概念说明 防火墙 防火墙是一种网络安全设备或软件&#xff0c;用于监控和控制网络流量&#xff0c;保护网络免受恶意攻击和未经授权的访问。防火墙可以根据预定义…

Idea的基本使用带案例---详细易懂

一.idea是什么 有专业人士说&#xff0c;idea是天生适合做微软&#xff0c;当时我还想肯定是夸大其词了&#xff0c;但当你用起来的时候确实很爽&#xff0c;&#x1f60a;&#x1f60a; ntelliJ IDEA是一种集成开发环境&#xff08;IDE&#xff09;&#xff0c;由JetBrains开发…

游戏弱网测试之测试用例

首先来看下网络差会对游戏造成什么影响&#xff1a; 1、延迟大&#xff0c;PING值高&#xff0c;游戏画面不同步&#xff0c;各种飞天遁地 2、画面卡住。&#xff08;卡住后&#xff0c;下场往往一言难尽&#xff09; 3、显示不全 还有一些跟金钱挂钩的&#xff0c;充值不到账…

802.11K/V/R协议介绍

802.11K/V/R协议介绍 1.传统无线漫游介绍 1.1 什么是无线漫游 一台无线终端备&#xff08;STA&#xff09;通过连接Wi-Fi获取上网体验&#xff0c;Wi-Fi名称&#xff08;又称为SSID&#xff09;是由无线接入网&#xff08;AP&#xff09;提供的&#xff0c;因为一台AP设备的覆…

Pads输出器件坐标文件时,如何更改器件坐标精度

相信对于用pads软件的工程师么&#xff0c;在完成PCB设计的时候都需要输出生产文件给板厂和贴片厂&#xff0c;今天我们需要给大家介绍的是如何在在pads软件上面输出器件坐标文件以及如何更改器件坐标文件的精度。 首先我们需要点击工具-基本脚本-基本脚本接下来会跳到下面这个…