本实训主要讲解Linux中对文件/目录压缩和解压缩操作。

随着多媒体、视频图象、文档映象等技术的出现,数据压缩成了一个重要研究点。数据压缩基本上是挤压数据使得它占用更少的磁盘存储空间和更短的传输时间。压缩的依据是数字数据中包含大量的重复,它将这些重复信息用占用空间较少的符号或代码来代替。

Linux 系统中提供很多文件/目录的压缩和解压缩命令,常见的格式有.tar.gz,而Windows上创建的压缩文件格式是.rar

本实训主要讲解如何对Linux文件/目录设置特殊的权限和特殊属性。

第1关:tar打包命令

  • 任务描述
  • 相关知识
    • 打包
    • 解包
  • 编程要求
  • 测试说明

任务描述

有时,我们会在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 oldFile2
tar -xvf oldFile.tar
#********* end *********#

第2关:文件压缩命令

  • 任务描述
  • 相关知识
    • bzip2
    • gzip
    • zip
    • tar命令进行压缩
  • 编程要求
  • 测试说明

任务描述

由于磁盘空间有限,我们通常会将不常用的大文件进行压缩以便于节约磁盘空间,通过本关的学习,我们将学会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 *********#

第3关:文件解压缩命令

  • 任务描述
  • 相关知识
    • bunzip2
    • gunzip
    • unzip
    • tar命令进行解压缩
  • 编程要求
  • 测试说明

任务描述

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

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

相关知识

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 *********#

EduCoder Linux之文件打包和解压缩相关推荐

  1. Linux之文件打包和解压缩

    第1关:tar打包命令 有时,我们会在Linux系统中将多个文件打包成一个单独的文件,通过本关的学习,我们将学会如何在Linux系统中将多个文件/目录打包生成一个文件. 本关任务:使用tar命令完成文 ...

  2. Linux新手上路(六):文件打包和解压缩

    1.概念讲解 在讲 Linux 上的压缩工具之前,有必要先了解一下常见常用的压缩包文件格式.在 Windows 上最常见的不外乎这两种 .zip,.7z 后缀的压缩文件.而在 Linux 上面常见的格 ...

  3. linux中如何压缩单个文件大小,Linux 将文件打包、压缩并分割成指定大小

    打包文件: tar -cvf .tar 分割文件: split -b 3G -d -a .tar .tar. //使用split命令,-b 3G 表示设置每个分割包的大小,单位还是可以k // -d ...

  4. Linux 下文件打包和压缩

          在 Windows 下我们通常会用好压或者是 Winrar 来进行压缩文件,一般没有打包的说法.在 Linux 下却不太一样,我们可以利用一些命令完成对文件的打包和压缩.这篇文章介绍 ta ...

  5. linux中文件打包压缩,linux在文件打包和压缩

    1. 打包和压缩文件 linux现在经常使用gzip和bzip2要压缩的文件.tar压缩文件. 经常使用的扩展: *.gz   gzip压缩文件 *.bz2  bzip2压缩的文件 *.tar   t ...

  6. linux下的打包和解压缩命令,浅析Linux打包压缩解压缩命令大全(收藏)

    下面是小编日常收集整理的关于linux打包压缩解压缩命令大全,具体内容如下所述: tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar Dir ...

  7. linux的文件打包与压缩

    简介Linux 上常用的压缩/解压工具,常见的压缩工具都是tar.gz格式,还有tar/gz/bz2/zip格式 .gz:表示由gzip压缩工具压缩的文件 .bz2:表示由bzip2压缩工具压缩的文件 ...

  8. Linux下的打包和解压缩命令

    先直接给出各种解压缩命令 .tar 压缩:tar cvf FileName.tar FileName 解压:tar xvf FileName.tar ------------------------- ...

  9. Linux 将文件打包、压缩并分割成指定大小

    打包文件: tar -cvf 20190816.tar 20190816 分割文件: split -b 3G -d -a 1 20190816.tar 20190816.tar. //使用split命 ...

最新文章

  1. B树和B+树分别是什么?区别在哪里?MySQL使用的是哪一种树?
  2. 事件处理 ajax,AJAX的多事件处理机制
  3. linux shell中的命令自动补全(compgen complete)与 命令行参数解析
  4. VMware Workstation三种网络连接模式说明(Bridged,NAT,Host-only networking)
  5. 12月21日云栖精选夜读:阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”...
  6. [工具库]JOJSONBuilder工具类——一键把多个bean对象数据转换为JSON格式数据
  7. unity烘培单个物体_Unity可编程渲染管线(SRP)教程:二、自定义着色器
  8. 大创中期报告怎么写_课题研究中期报告怎么写?这篇范文很说的很详细
  9. poj 1426 BFS
  10. 为什么买入不了创业版_趋势波段买卖创业板ETF指数基金能轻松保险盈利
  11. CSS3 Flexbox 弹性布局
  12. utittest和pytest中mock的使用详细介绍
  13. Linux 6.4 网卡提示 not active怎么办Shutting down interface eth0: Error:
  14. linux命令学习之---- file
  15. rand()函数实现原理:线性同余法
  16. 股市最好用的大数据软件_炒股软件app哪个最好用?老股民说你有这个就够了
  17. 2022年上半年软考-嵌入式系统设计师-回忆版
  18. 人大与加拿大女王大学金融硕士在短学制中成就别样的人生
  19. qt中glMultiTexCoord2fARB报错
  20. Jetson nano/nx通过网线连接电脑实现远程控制

热门文章

  1. request和response对象如何解决中文乱码问题?
  2. Windows下安装和配置tomca(免安装版本)
  3. jmeter察看结果树-响应数据乱码
  4. JavaScript---详解cookie
  5. IntelliJ IDEA14 配置 SVN
  6. ArcMap 水文分析 部分功能
  7. 7-8 InputMismatchException异常 (20 分)
  8. 第9章例题 7-2 学生成绩排序
  9. linux中查找某一个字符串,linux下查找包含某个字符串的文件
  10. code ./打不开vscode编辑器