• 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. #!/bin/bash
    2. #在以下部分写出完成任务的命令
    3. #*********begin*********#
    4. #使用tar命令将当前目录下的oldFile1和oldFile2文件打包成一个newFile.tar文件;
    5. tar -cvf newFile.tar oldFile1 oldFile2
    6. #使用tar命令将当前目录下的oldFile.tar文件解压到当前目录下。
    7. tar -xvf oldFile.tar
    8. #********* end *********#

    二.文件压缩命令

    相关知识

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

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

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

    bzip2命令

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

    具体命令如下:

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

    常用命令参数如下:

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

    案例演示:

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

    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文件进行压缩,具体使用如下命令:

    gzip new.tar

     

    zip命令

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

    具体命令如下:

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

    常用命令参数如下:

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

    案例演示:

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

    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,具体使用如下命令:

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

     

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

    案例演示2

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

    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. #!/bin/bash
    2. #在以下部分写出完成任务的命令
    3. #*********begin*********#
    4. #使用tar命令将当前目录下的oldFile1和oldFile2文件打包压缩成一个newFile.tar.gz文件;
    5. tar -cvf newFile.tar.gz oldFile1 oldFile2
    6. #使用bzip2命令对当前目录下的oldFile.tar文件压缩;
    7. bzip2 oldFile.tar
    8. #使用zip命令将当前目录下的oldDir目录所有文件/目录压缩生成oldDir.zip。
    9. zip -r oldDir.zip oldDir
    10. #********* 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文件进行解压操作,具体使用如下命令:

    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文件进行解压操作,具体使用如下命令:

    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文件进行解压操作,具体使用如下命令:

    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文件进行解压,具体使用如下命令:

    tar -jxvf new.tar.bz2

     

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

    案例演示2

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

    tar -zxvf new.tar.gz

     

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

    编程要求

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

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

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

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

    1. #!/bin/bash
    2. #在以下部分写出完成任务的命令
    3. #*********begin*********#
    4. #使用tar命令解压当前目录下的oldFile.tar.gz文件;
    5. tar -xvf oldFile.tar.gz
    6. #使用bunzip2命令解压当前目录下的oldFile.tar.bz2文件;
    7. bunzip2 oldFile.tar.bz2
    8. #使用unzip命令解压当前目录下的oldDir.zip。
    9. unzip oldDir.zip
    10. #********* end *********#

  • 相关阅读:
    音视频开发之旅(66) - 音频变速不变调的原理
    网络性能概述
    如何确定自己是否适合做程序员?
    数据结构: unordered_map与unordered_set
    Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之二 简单人脸检测添加戴眼镜效果
    BiConsumer的使用
    秋招-算法-查分与前缀和数组篇
    Android 全栈的进击之路
    Qt_Ymodem自己实现
    复杂度为O(NlogN)的归并排序
  • 原文地址:https://blog.csdn.net/qq_61604164/article/details/126160629