• 8、Linux:一起玩转压缩/解压命令2


    这篇将重点说明 tar 命令的使用,我们知道 tar 是用来建立,还原备份文件的工具程序,它可以加入和解开备份文件内的文件。值得注意的是,tar 是打包,不是压缩,它本身不具有压缩功能,而是调用压缩功能实现的 。

    tar 命令的基本格式如下:

    tar [参数选项] xxx.tar [文件]

    常用的参数选项有:

    • -c: 建立压缩档案
    • -x:解压
    • -t:查看内容
    • -r:向压缩归档文件末尾追加文件
    • -u:更新原压缩包中的文件
    • -z:有 gzip 属性的
    • -j:有 bz2 属性的
    • -Z:有 compress 属性的
    • -v:显示所有过程
    • -O:将文件解开到标准输出
    • -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
    • --exclude=<范本样式>:排除符合范本样式的文件

    1、.tar 文件的压缩与解压

    使用举例:

    1. # 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
    2. tar -cvf 20220705211259.tar wheater_20220705_*.txt
    3. # 压缩并排除掉指定文件
    4. tar --exclude=wheater_20220705_001.txt -cvf 20220705211259.tar wheater_20220705_*.txt
    5. # 解压
    6. tar -xvf 20220705211259.tar

    2、.tar.gz 文件的压缩与解压

    使用举例:(接上面的示例)

    1. # 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
    2. tar -zcvf 20220705211259.tar.gz wheater_20220705_*.txt
    3. # 压缩并排除掉指定文件
    4. tar --exclude=wheater_20220705_001.txt -zcvf 20220705211259.tar.gz wheater_20220705_*.txt
    5. # 解压
    6. tar -zxvf 20220705211259.tar.gz

    可以看到,.tar.gz 与 .tar 的区别就在于多加入了 -z 参数,而 -z 正是操作具有 gzip 属性的文件。值得注意的是,.tar.gz 也可以写成 .tgz ,二者本质是一样的。

    3、.tar.bz2 文件的压缩与解压

    使用举例:(接上面的示例)

    1. # 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
    2. tar -jcvf 20220705211259.tar.bz2 wheater_20220705_*.txt
    3. # 压缩并排除掉指定文件
    4. tar --exclude=wheater_20220705_001.txt -jcvf 20220705211259.tar.bz2 wheater_20220705_*.txt
    5. # 解压
    6. tar -jxvf 20220705211259.tar.bz2

    同样的,.tar.bz2 与 .tar 的区别就在于多加入了 -j 参数,而 -j 也正是操作具有 bz2 属性的文件。

    4、.tar.Z 文件的压缩与解压

    使用举例:(接上面的示例)

    1. # 压缩: 打包当前目录下的所有wheater_20220705_开头的txt文件
    2. tar -Zcvf 20220705211259.tar.Z wheater_20220705_*.txt
    3. # 压缩并排除掉指定文件
    4. tar --exclude=wheater_20220705_001.txt -Zcvf 20220705211259.tar.Z wheater_20220705_*.txt
    5. # 解压
    6. tar -Zxvf 20220705211259.tar.Z

    到这里,规律就显而易见了。在 .tar 后缀的基础上是可以选择 .gz、.bz2、.Z 等方式,继续进行压缩和解压操作的,只是需要加入对应的参数实现而已。

    5、.z 文件的压缩与解压

    gz 和 bz2 的内容在上一篇已经说明过了,不再赘述,那么,Z 参数是什么呢?-Z  参数适用于通过 tar 压缩和解压具有 compress 属性的文件。

    这里,顺便说明下,单纯 .Z 文件的打包和解压,打包使用 compress 命令(压缩后生成 .Z 文件,这是一种很原始的压缩方式,实际上不推荐使用),解压使用 uncompress 命令,演示如下:

    1. # 压缩:生成wheater_20220705_001.Z
    2. compress wheater_20220705_001.txt
    3. # 解压:直接解开生成wheater_20220705_001.txt
    4. uncompress wheater_20220705_001.Z

    需要注意的是:使用这种压缩和解压,需要先下载有关插件,apt install ncompress,不然会提示报错。

    6、.rar 文件的压缩与解压

    这种格式常见于 Windows 系统上的压缩和解压操作,而在 Linux 系统上使用需要先下载有关rar插件,apt install rar。

    rar 命令通过使用 -a 参数实现压缩成 .rar 文件,使用 -x 参数实现解压 .rar 文件,演示如下:

    1. # 压缩:
    2. rar -a wheater_07705.rar wheater_20220705_001.txt
    3. # 解压:
    4. unrar -x wheater_07705.rar

    7、.7z 文件的压缩与解压

    7z 是一种可以使用多种压缩算法进行数据压缩的档案格式,拥有极高的压缩比。这种格式在 Linux 系统上使用需要先下载有关插件才能使用,那么,如何下载安装呢?

    如果是 Ubuntu 系统,使用以下命令:

    sudo apt-get install p7zip

    如果是 Centos 系统,使用以下命令:

    yum install p7zip

    使用起来感觉与 rar 比较相似,也是通过 -a 参数压缩,常用参数说明:

    • a:压缩操作,添加文件/目录到压缩包
    • -t:指定压缩类型,可不指定,默认压缩类型是7z,也可以指定. tar.bz2 等压缩类型
    • -mx=数字:指定极限的压缩比,默认为5
    • -r:递归操作,将指定目录下的所有文件和子目录一并处理

    使用演示如下:

    1. # 压缩:
    2. 7za a -t7z -r -mx=9 wheater_all.7z wheater_*.txt

    -x 参数解压,常用参数说明:

    • x:解压操作,推荐使用 a 参数,而不建议使用 e 参数(e 参数会将所有文件都解压到根目录下,而不是原有的文件目录下)
    • -r:递归操作,将指定目录下的所有文件和子目录一并处理
    • -o:解压到指定目录,注意该参数后直接跟上指定目录,无空格!!!
    1. # 解压:
    2. 7za x wheater_all.7z -r -o/temp/

    最后

    这里,梳理了更高级的压缩与解压的命令,有系统自带的 tar 系列命令,也有compress/uncompress、rar/unrar、7za 等第三方插件的使用。

  • 相关阅读:
    在Windows 10中开启FTP服务
    Element-ui container常见布局
    vue父子组件传递参数详解
    如何快速给pdf加水印?
    面试突击82:SpringBoot 中如何操作事务?
    FastAPI 学习之路(一)fastapi--高性能web开发框架
    小立活动-小程序
    【排序26:有序矩阵中第 K 小的元素】
    hive-学习汽车销售分析
    App移动端测试【10】Monkey自定义脚本案例
  • 原文地址:https://blog.csdn.net/qq_29119581/article/details/125627990