Linux之文件打包和解压缩

news2025/1/12 18:18:56

任务描述

有时,我们会在Linux系统中将多个文件打包成一个单独的文件,通过本关的学习,我们将学会如何在Linux系统中将多个文件/目录打包生成一个文件。

本关任务:使用tar命令完成文件和目录的打包操作。

相关知识

tartape archive的简写)工具可完成许多功能,其名称源于它的原始功能-创建和读取归档文件和备份磁带。如今,该工具常用来将多个文件或多个目录打包成一个tar文件,或者将某个tar文件分解开。

接下让我们详细的学习tar的使用方法。

打包

tar命令可以将多个文件/目录进行打包,将多个文件生成一个文件,生成的文件后缀为.tar

具体打包命令如下:

tar -cvf 生成的tar包名 要打包的文件/目录列表

常用命令参数如下:

 
  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;

案例演示1

在当前目录下创建a.txtb.txtc.txt文件,将其打包成一个new.tar,具体使用如下命令:

 
  1. touch a.txt b.txt c.txt
  2. tar -cvf new.tar a.txt b.txt c.txt

案例演示

在当前目录下创建dirAdirBdirC目录,将其打包成一个newDir.tar,具体使用如下命令:

 
  1. mkdir dirA dirB dirC
  2. tar -cvf newDir.tar dirA dirB dirC

解包

tar命令可以将已经打包好的文件解压出来。

具体打包命令如下:

tar -xvf 解压包名 -C 解压到指定目录

常用命令参数如下:

 
  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -C <目的目录> 切换到指定的目录;

如果不使用-C(大写)参数,则默认解压到当前目录下。

案例演示1

将当前目录下的a.txtb.txtc.txt文件删除,将打包好的new.tar文件解压到当前目录,具体使用如下命令:

 
  1. rm -fr a.txt b.txt c.txt
  2. tar -xvf new.tar

案例演示2

在当前目录下创建newDir目录,将打包好的newDir.tar文件解压到newDir目录下,具体使用如下命令:

 
  1. mkdir newDir
  2. tar xvf newDir.tar -C ./newDir

编程要求

在右侧编辑器中补充代码,使用tar命令打包和解包,具体编程要求如下:

  • 使用tar命令将当前目录下的oldFile1oldFile2文件打包成一个newFile.tar文件;

  • 使用tar命令将当前目录下的oldFile.tar文件解压到当前目录下。

测试说明

平台将对你编写的代码进行评测:

预期输出:

 
  1. 压缩文件成功
  2. 解压文件成功

不因幸运而固步自封,不因厄运而一蹶不振。真正的强者,善于从顺境中找到阴影,从逆境中找到光亮,时时校准自己前进的目标。——易卜生

开始你的任务吧,祝你成功!

#!/bin/bash

#在以下部分写出完成任务的命令
#*********begin*********#
tar -cvf newFile.tar oldFile1 odlFile2
tar -xvf oldFile.tar
#********* end *********#

任务描述

由于磁盘空间有限,我们通常会将不常用的大文件进行压缩以便于节约磁盘空间,通过本关的学习,我们将学会Linux系统上常见的压缩命令。

本关任务:对系统中已存在的文件/目录进行压缩操作。

相关知识

Linux下存在多个文件压缩工具,常用的有bzip2gzipzip。这三个工具都是可以将一个文件进行压缩操作,使其在不丢失任何信息的情况下占用较少的磁盘空间。而如何对于多个文件/目录进压缩操作呢?

我们通过上一关的学习,我们了解到了使用tar命令可以将多文件/目录打包生成一个文件,那么对于多文件/目录的压缩操作分为两步:第一步是将其进行打包,然后将打包过后的文件进行压缩操作。

接下让我们详细的学习bzip2gzipzip的使用方法。

bzip2

bzip2命令用于创建和管理(包括解压缩).bz2格式的压缩包。

具体命令如下:

bzip2 命令参数 指定要压缩的文件

常用命令参数如下:

 
  1. -z或——compress:强制执行压缩;
  2. -d或——decompress:执行解压缩;
  3. -f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
  4. -v或——verbose:压缩或解压缩文件时,显示详细的信息;

案例演示:

使用bzip2命令对当前目录下的new.tar文件进行压缩,具体使用如下命令:

 
  1. bzip2 new.tar

gzip

gzip命令用于创建和管理(包括解压缩).gz格式的压缩包。

具体命令如下:

gzip 命令参数 指定要压缩的文件

常用命令参数如下:

 
  1. -d或--decompress或----uncompress:解开压缩文件;
  2. -f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
  3. -l或——list:列出压缩文件的相关信息;
  4. -r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  5. -v或——verbose:显示指令执行过程;

案例演示:

使用gzip命令对当前目录下的new.tar文件进行压缩,具体使用如下命令:

 
  1. gzip new.tar

zip

zip命令对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有.zip扩展名的压缩文件。

具体命令如下:

zip 命令参数 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

 
  1. -d:从压缩文件内删除指定的文件;
  2. -q:不显示指令执行过程;
  3. -r:递归处理,将指定目录下的所有文件和子目录一并处理;
  4. -v:显示指令执行过程或显示版本信息;
  5. -u:更换较新的文件到压缩文件内;
  6. -x<范本样式>:压缩时排除符合条件的文件;

案例演示:

使用zip命令将newDir目录下的所有文件/目录压缩生成newDir.zip,具体使用如下命令:

 
  1. zip -r newDir.zip newDir

tar命令进行压缩

在上一关的学习中,我们学会了使用tar命令对多个文件/目录进行打包操作,如果针对多文件/目录进行压缩操作时,首先使用tar将其打包生成一个文件,然后使用bzip2gzip对其进行压缩,那么这里也可以使用tar命令一步就实现对多文件/目录进行压缩操作。

采用bzip2方式执行tar命令进行压缩的具体命令如下:

tar -jcvf 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

 
  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -j 以bzip2对文件/目录进行压缩;

采用gzip进行压缩的具体命令如下:

tar -zcvf 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

 
  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -z 以gzip对文件/目录进行压缩;

案例演示1:

使用tar命令将当前目录下的a.txtb.txtc.txt文件压缩生成new.tar.bz2,具体使用如下命令:

 
  1. tar -jcvf new.tar.bz2 a.txt b.txt c.txt

这里也可以分为两步进行操作,首先是创建tar包,然后对tar包使用bzip2进行压缩操作。

案例演示2

使用tar命令将当前目录下的a.txtb.txtc.txt文件压缩生成new.tar.gz,具体使用如下命令:

 
  1. tar -zcvf new.tar.gz a.txt b.txt c.txt

这里也可以分为两步进行操作,首先是创建tar包,然后对tar包使用gzip进行压缩操作。

编程要求

在右侧编辑器中补充代码,对系统中已存在的文件/目录进行压缩操作,具体编程要求如下:

  • 使用tar命令将当前目录下的oldFile1oldFile2文件打包压缩成一个newFile.tar.gz文件;

  • 使用bzip2命令对当前目录下的oldFile.tar文件压缩;

  • 使用zip命令将当前目录下的oldDir目录所有文件/目录压缩生成oldDir.zip

测试说明

平台会对你编写的代码进行评测:

预期输出:

 
  1. 压缩oldFile1和oldFile2文件成功
  2. 压缩oldFile.tar文件成功
  3. 压缩oldDir目录成功

倘若你想达成目标,便得在心中描绘出目标达成后的景象;那么,梦想必会成真。——英国当代动机大师 理查丹尼

开始你的任务吧,祝你成功!

#!/bin/bash

#在以下部分写出完成任务的命令
#*********begin*********#
tar -zcvf newFile.tar.gz oldFile1 oldFile2
bzip2 oldFile.tar
zip -r oldDir.zip oldDir
#********* end *********#

任务描述

通常,我们上网下载的文件一般都是压缩过后的文件,通过本关的学习,我们可以学会如何将一个压缩文件进行解压操作。

本关任务:将压缩文件进行解压缩操作。

相关知识

Linux下存在多个文件压缩工具,上一关我们介绍了包括bzip2gzipzip。针对这三种压缩工具生成的压缩包,我们可以使用bunzip2gunzipunzip命令对其进行解压缩。

接下让我们详细的学习bunzip2gunzipunzip的使用方法。

bunzip2

bunzip2命令解压缩由bzip2指令创建的.bz2压缩包。使用bzip2 -d命令也可以将.bz2压缩包进行解压。

具体命令如下:

bunzip2 命令参数 指定要解压的文件

常用命令参数如下:

 
  1. -f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
  2. -k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
  3. -v或——verbose:解压缩文件时,显示详细的信息;

案例演示:

使用bunzip2命令对当前目录下的new.tar.bz2文件进行解压操作,具体使用如下命令:

 
  1. bunzip2 new.tar.bz2 或 bzip2 -d new.tar.bz2

注意:这里解压生成了一个tar包,如果想得到tar包里的内容,则需要对tar包进行解包操作(详细命令参考第一关知识点)。

gunzip

gunzip命令解压缩由gzip指令创建的.gz压缩包。使用gzip -d命令也可以将.gz压缩包进行解压。

具体命令如下:

gunzip 命令参数 指定要解压的文件

常用命令参数如下:

 
  1. -f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
  2. -l或-list:列出压缩文件的相关信息;
  3. -q或-quiet:不显示警告信息;
  4. -r或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  5. -v或-verbose:显示指令执行过程;

案例演示:

使用gunzip命令对当前目录下的new.tar.gz文件进行解压操作,具体使用如下命令:

 
  1. gunzip new.tar.gz 或 gzip -d new.tar.gz

注意:这里解压生成了一个tar包,如果想得到tar包里的内容,则需要对tar包进行解包操作(详细命令参考第一关知识点)。

unzip

unzip命令用于解压缩由zip命令压缩的.zip压缩包。

具体命令如下:

unzip 命令参数 指定要解压的文件

常用命令参数如下:

 
  1. -q:执行时不显示任何信息;
  2. -n:解压缩时不要覆盖原有的文件;
  3. -d<目录>:指定文件解压缩后所要存储的目录;

案例演示:

使用unzip命令对当前目录下的newDir.zip文件进行解压操作,具体使用如下命令:

 
  1. unzip newDir.zip

tar命令进行解压缩

在上一关的学习中,我们学会了使用tar命令对多个文件/目录进行打包压缩操作,本关将继续讲解使用tar命令对文件进行解压缩操作。

采用bunzip2进行解压缩的具体命令如下:

tar -jxvf 指定要解压的文件

常用命令参数如下:

 
  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -j 以bunzip2进行解压缩;

采用gzip进行压缩的具体命令如下:

tar -zxvf 指定要解压的文件

常用命令参数如下:

 
  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -z 以gunzip进行解压缩;

案例演示1

使用tar命令对当前目录下的new.tar.bz2文件进行解压,具体使用如下命令:

 
  1. tar -jxvf new.tar.bz2

这里也可以分为两步进行操作,首先是使用bunzip2进行解压生成tar包,然后对tar包进行解包操作。

案例演示2

使用tar命令对当前目录下的 new.tar.gz文件进行解压,具体使用如下命令:

 
  1. tar -zxvf new.tar.gz

这里也可以分为两步进行操作,首先是使用gunzip进行解压生成tar包,然后对tar包进行解包操作。

编程要求

在右侧编辑器中补充代码,将压缩文件进行解压,具体编程要求如下:

  • 使用tar命令解压当前目录下的oldFile.tar.gz文件;

  • 使用bunzip2命令解压当前目录下的oldFile.tar.bz2文件;

  • 使用unzip命令解压当前目录下的oldDir.zip

测试说明

平台将对你编写的代码进行评测:

预期输出:

 
  1. 解压oldFile.tar.gz文件成功
  2. 解压oldFile.tar.bz2文件成功
  3. 解压oldDir.zip目录成功

真正的人生,只有在经过艰难卓绝的斗争之后才能实现。——塞涅卡

开始你的任务吧,祝你成功!

#!/bin/bash

#在以下部分写出完成任务的命令
#*********begin*********#
tar -zxvf oldFile.tar.gz
bunzip2 oldFile.tar.bz2
unzip oldDir.zip
#********* end *********#

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

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

相关文章

验证断言(立即断言并行断言)

目录 1.何为断言 2.断言的作用&#xff1a; 3.断言的种类 3.1立即断言 3.2并发断言 4.断言层次结构 4.1 sequence 序列 4.2 property 序列 5.sequence和property的异同 6.补充知识点&#xff08;assert/cover/assume&#xff09; 7.写在后边 1.何为断言 断言主要…

网络知识点之-FTP协议

FTP协议指文件传输协议&#xff08;File Transfer Protocol&#xff0c;FTP&#xff09;&#xff0c;是用于在网络上进行文件传输的一套标准协议&#xff0c;它工作在 OSI 模型的第七层&#xff0c; TCP 模型的第四层&#xff0c; 即应用层&#xff0c; 使用 TCP 传输而不是 UD…

第一节 初识C语言

第一节 初识C语言 目录 一&#xff0e; 什么是C语言二&#xff0e; 第一个C语言程序三&#xff0e; 数据类型四&#xff0e; 变量与常量五&#xff0e; 未完待续 本章重点&#xff1a; 什么是C语言第一个C语言程序数据类型变量、常量字符串转义字符注释选择语句循环语句函数数组…

【LeetCode】每日一题 -- 1171. 从链表中删去总和值为零的连续节点 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/remove-zero-sum-consecutive-nodes-from-linked-list/ 1. 题解&#xff08;1171. 从链表中删去总和值为零的连续节点&#xff09; 2021年字节二面真题 1.1 暴力解法&#xff1a;穷举 时间复杂度 O(n2)&#xff0c;空间复杂…

Python系列之面向对象编程

目录 一、面向对象编程 1.1 面向对象三大特征 1.2 什么是对象 二、类(class)和实例(instance) 2.1 类的构成 2.2 创建类 2.3 创建实例对象和访问属性 2.4 Python内置类属性 2.5 类属性与方法 三、类的继承 3.1 方法重写 四、多态 一、面向对象编程 1.1 面向对象三大…

抖音短视频矩阵系统-源码-系统搭建

目录 1. 短视频AI智能创作 2. 托管式账号管理: 3. 数据分析 4. 智能营销获客 开发流程 抖音账号矩阵系统开发&#xff0c;抖音账号矩阵系统源码搭建&#xff0c;抖音账号技术系统源码部署 抖音矩阵系统专注于为短视频私域运营达人或企业提供一站式赋能服务平台。具体包括智…

小议CSDN周赛57期 - 凑数

本期周赛几乎忘记参加&#xff0c;在最后几分钟的时候上来看了看。那些选择判断一通乱选&#xff0c;填空题也已经被吐槽得差不多了&#xff0c;这里不多说&#xff0c;只说我对第一道编程题的看法&#xff08;吐槽&#xff09;。因为 C 站的机制是&#xff0c;即使它错了&…

彻底理解HTTPS加密原理

目录 1.为什么需要加密&#xff1f; 2.什么是对称加密&#xff1f; 3.什么是非对称加密&#xff1f; 4.非对称加密对称加密&#xff1f; 5.数字证书 6.数字签名 相信大家对于HTTP与HTTPS的区别都有了解&#xff0c;那么对于HTTPS的加密过程你是否知道呢&#xff1f; 对称…

单片机内存管理

单片机内存管理 1、随机存储器 RAM是随机存储器&#xff0c;读写速度快&#xff0c;但掉电以后数据会丢失。它分为SRAM(静态RAM)和DRAM(动态RAM)。SRAM无需刷新就可以保存数据&#xff1b;DRAM需要不断刷新才可以保存数据。在CPU内部的RAM&#xff0c;就叫内部RAM&#xff0c…

算法模板(3):搜索(4):高等图论

高等图论 有向图的强连通分量 相关概念 强连通分量&#xff1a;Strongly Connected Component (SCC).对于一个有向图顶点的子集 S S S&#xff0c;如果在 S S S 内任取两个顶点 u u u 和 v v v&#xff0c;都能找到一条 u u u 到 v v v 的路径&#xff0c;那么称 S S…

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节 JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节 文章目录 JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节前言Java对象创建的流程步骤包括哪些&#xff1f;总结 前言 JVM零…

【云原生 | 53】Docker三剑客之Docker Compose应用案例一:Web负载均衡

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

基于Echarts构建停车场数据可视化大屏(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【部署LVS-DR 群集】

目录 一、DR模式 LVS负载均衡群集1、数据包流向分析2、DR 模式的特点 二、DR模式 LVS负载均衡群集部署1、1.配置负载调度器&#xff08;192.168.80.30&#xff09;&#xff08;1&#xff09;配置虚拟 IP 地址&#xff08;VIP&#xff1a;192.168.102.188&#xff09;&#xff0…

《设计模式》之装饰器模式

文章目录 1、定义2、动机3、类结构4、优缺点5、注意事项6、总结7、代码实现(C) 1、定义 动态&#xff08;组合&#xff09;地给一个对象增加一些额外的职责。就增加功能而言&#xff0c;Decorator模式比生成子类&#xff08;继承&#xff09;更为灵活&#xff08;消除重复代码…

PPT中这8个隐藏技巧-掌握了马上让你幸福感满满

开篇 一个好的PPT需要精雕细琢。即使我们使用了AIGC特别是时下流行的用GPT书写大纲,然后把大纲内的内容放到一些自动GC PPT内容的生成器里生成后的PPT其实也不是马上可以拿来用的。工作上一份大领导、公司、集团级别的PPT不可能90%使用GPT GC生成就可以直接交付的。比如说我们…

Trie树模板与应用

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/algorithms-notes 】或者公众号【AIShareLab】回复 算法笔记 也可获取。 文章目录 Trie树&#xff08;字典树&#xff09;基本思想例题 Trie字符串统计code关于idx的理解 模板总结应用 最大异或对分…

初探BERTPre-trainSelf-supervise

初探Bert 因为一次偶然的原因&#xff0c;自己有再次对Bert有了一个更深层地了解&#xff0c;特别是对预训练这个概念&#xff0c;首先说明&#xff0c;自己是看了李宏毅老师的讲解&#xff0c;这里只是尝试进行简单的总结复述并加一些自己的看法。 说Bert之前不得不说现在的…

ansible远程执行指令,/bin/sh: java: command not foundnon-zero return code

问题描述&#xff1a;ansible远程执行指令&#xff0c;初选指令加载不全&#xff0c; [rootVM-0-6-centos ~]# ansible all -m shell -a "java -version" 10.206.0.15 | FAILED | rc127 >> /bin/sh: java: command not foundnon-zero return code 解决方案&a…

C++(8):IO 库

IO 类 IO 库类型和头文件 iostream 定义了用于读写流的基本类型&#xff0c;fstream 定义了读写命名文件的类型&#xff0c;sstream 定义了读写内存 string 对象的类型。 其中带 w 前缀的类型用来操作宽字符语言 (wchar_t)。宽字符版本的类型和函数前都有一个 w&#xff0c;如…