2021-09-10 23:22  阅读(86)
文章分类:Linux 入门教程 文章标签:LinuxLinux 教程
©  原文作者:慕课教程 原文地址:http://www.imooc.com/wiki/linuxlesson

文件压缩与解压

前面小节介绍了如何对文件和目录删除、移动操作,本小节介绍如何使用命令对文件和目录进行压缩与解压操作,常见的压缩包格式有 .bz2.Z.gz.zip.xz,压缩之后的文件或目录占用更少的空间。

1. tar 命令介绍

下面列举 tar 命令的参数:

tar命令参数名称 功能与作用描述
-c 新建立压缩档案
-x 解压缩
-t 查看内容
-u 更新原压缩包的内容
-z gzip属性的
-j bz2属性的
-Z compress属性的
-v 显示所有过程
-O 将文件解压缩成标准输出形式
-f 使用档案名字,此参数都是在最后,其后面跟上一个档案的名字

Tips:其中 -c-x-t-u 这五个参数是独立的,每次使用选其中一个,-f 是最后一个参数,后面跟上档案名。

1.1 将指定类型文件打包成 tar 包

为了演示方便,先切入到 /home 目录下,使用 touch 命令创建几个 .txt 文件,然后使用 tar 命令将其打包,命令如下:

    cd /home
    
    touch a.txt b.txt c.txt d.txt e.txt
    
    ls -l
    
    tar -cf alltxt.tar *.txt 
    
    ls -l
    

执行结果如下图:

202109102322164171.png

Tips:其中 alltxt.tar 是一个自定义名称,后缀是 tar ,前半部分的名字可自行定义, *.txt 中的 * 表示通配符代表所有的意思。

1.2 向现有的 tar 包中新增文件

这里再使用 touch 命令创建一个 g.txt 文件,使用 tar 命令将其新增至 alltxt.tar 中,命令如下:

    touch g.txt
    
    tar -rf alltxt.tar g.txt
    

执行结果如下图:

202109102322174632.png

1.3 更新 原来 tar 包中的文件

使用 rm 命令删除 /home 目录中的 a.txt ,然后新建一个 a.txt 表示为更新后的 a.txt,使用 tar 命令将 a.txt 更新至 alltxt.tar 中,命令如下:

    rm -f a.txt
    
    touch a.txt
    
    tar -uf alltxt.tar a.txt
    

执行结果如下图:

202109102322184093.png

Tips:若 alltxt.tar 中没有 a.txt,那么使用 tar -uf 就会将 a.txt 新增到 alltxt.tar 中。

1.4 列出 tar 包中打包的所有文件

这里为了演示方便,将 /home 目录原有的 .txt 文件全都删除掉,然后使用 tar 命令查看 alltxt.tar 中所有文件列表,命令如下:

    ls
    
    rm -f *.txt
    
    ls
    
    tar -tf alltxt.tar
    

执行结果如下图:

202109102322192034.png

1.5 解开 tar 包中所有文件

接着上面的内容,可以使用 tar 命令将 alltxt.tar 解开把文件释放到当前目录,命令如下:

    ls
    
    tar -xf alltxt.tar
    
    ls
    

执行结果如下图:

202109102322201475.png

1.6 使用 tar 命令压缩

上面打包的 alltxt.tar 文件并没有压缩文件,只是把文件都打包在一起,如下命令可以把 alltxt.tar 压缩成为不同格式的压缩包:

    ls
    
    tar -czf alltxt.tar.gz alltxt.tar
    
    ls
    
    tar -cjf alltxt.tar.bz2 alltxt.tar
    
    ls
    
    tar -cZf alltxt.tar.Z alltxt.tar
    
    ls
    

执行结果如下图:

202109102322217356.png

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

1.7 使用 tar 命令解压缩

为了演示方便,防止读者混淆,先将 alltxt.tar.gzalltxt.tar.bz2alltxt.tar.Z 三种格式压缩包移动至 study 目录,然后使用 tar 命令解压,命令如下:

    ls 
    
    mv alltxt.tar.gz study/
    
    mv alltxt.tar.bz2 study/
    
    mv alltxt.tar.Z study/
    
    cd study/
    
    ls
    

移动过程执行如下图:

202109102322228447.png

如上图所示,将需要解压的三种格式压缩包移动至 /home/study 目录中,下面对其解压缩,命令如下:

    ls
    
    tar -zxvf alltxt.tar.gz
    
    ls
    
    rm -f alltxt.tar
    
    ls
    
    tar -jxvf alltxt.tar.bz2
    
    ls
    
    rm -f alltxt.tar
    
    ls
    
    tar -Zxvf alltxt.tar.Z
    
    ls
    

执行结果如下图:

202109102322237198.png

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

2. zip 格式压缩与解压

CentOS 8 系统中自带 zipunzip 压缩与解压工具,可以使用 zip -vunzip -v 命令查看当前是否安装 zipunzip 工具,若是没有安装,则可以使用如下命令安装:

    yum -y update
    
    
    yum -y install zip unzip
    
    

安装过程如下图:

202109102322246789.png

如上图所示,先要更新 yum 源的软件包数据,如下图所示为安装 zipunzip 的过程执行图:

2021091023222598210.png

Tipsyum 是 Linux 中的一个软件管理仓库,关于 yum 如何安装软件后续小节会详细介绍。

2.1 使用 zip 压缩文件

使用 zip 命令可以将 alltxt.tar 包压缩为 .zip 压缩包,命令如下:

    ls
    
    zip alltxt.zip alltxt.tar
    
    ls
    

执行结果如下:

2021091023222693911.png

Tips:可以使用 zip -r zip包名 目录名 递归压缩目录以及目录中所有文件。

2.2 使用 unzip 解压缩

为了演示方便,先将 alltxt.zip 文件移动至 /home/study 中,然后解压,命令如下:

    ls
    
    mv alltxt.zip study/
    
    cd study/
    
    ls
    
    unzip alltxt.zip
    
    ls
    

执行结果如下图:

2021091023222788012.png

3. 小结

本小节介绍了如何使用 tar 命令打包文件和解开 tar 包,还介绍了如何使用 tar 将文件包压缩为 .gz.bz2.Z 格式的压缩包,如何解压缩它们,最后还介绍了如何使用 zipunzip 工具压缩与解压 .zip 格式的压缩包,需要注意的是使用 tar 命令将文件打包成 tar 包之后,文件并没有被压缩,只是打包在一起了,压缩文件前,也可以不打包成 tar 包,可以直接对某个文件和目录进行压缩。

  • 划线
  • 写笔记
  • 复制
    
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 文件压缩与解压
上一篇
移动文件和目录
下一篇
文件和目录重命名