• Linux学习笔记——压缩与解压缩


    Linux下有许多压缩文件与解压缩文件的命令,主要包括 gzip、bzip2、tar、rar、zip。


    文章目录


    gzip

    gzip 将文件压缩为 .gz 格式,其指令格式如下:

    gzip [选项] 源文件
    
    • 1

    选项:

    • -c:将压缩数据输出到标准输出中,可以用于保留源文件。
    • -d:解压缩
    • -r:压缩目录(实质是压缩目录下的每一个文件)。

    比如我们要压缩 test.txt 文件:

    我们可以看到 test.txt 文件被压缩为 test.txt.gz,且 test.txt 文件被删除了。
    如果我们想保留 test.txt 文件,可以使用 -c 将压缩数据输出到标准输出中,再使用 > 重定向至 test.txt.gz

    需要注意的是,gzip 无法打包文件,所以即使是压缩目录,也只是分别压缩目录下的每一个文件:

    解压缩文件,即可以使用 -d 参数,可以使用 gunzip 命令:


    bzip2

    bzip2 用于将文件压缩为 .bz2 格式,理论上讲,.bz2 格式的压缩算法更先进、压缩比更好,而 .gz 格式相对来讲压缩时间更快。

    bzip2 指令格式如下:

    bzip2 [选项] 源文件
    
    • 1

    选项:

    • -d:解压缩
    • -k:压缩时保留源文件
    • -v:显示压缩的详细信息

    比如我们需要压缩 test.txt 并保留源文件:

    这个命令不能压缩目录,否则会报错。

    即可以使用 bzip2 -d 解压缩,也可以使用 bunzip2 解压缩:


    tar

    tar 如果不加特殊选项只是对文件进行打包(并不压缩),其指令格式如下:

    tar [选项] [-f 压缩包名] 源文件或目录
    
    • 1

    选项:

    • -c:打包;
    • -f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
    • -v:显示打包文件的过程;
    • -x:解打包。

    比如我们要将 a.txtb.txtc.txt 打包成 test.tar

    如果我们要解打包 test.tar

    我们可以添加特别选项来进行压缩:

    • -z:压缩和解压缩 .tar.gz 格式;
    • -j:压缩和解压缩 .tar.bz2 格式。

    默认解压到当前目录,我们可以使用 -C 指定解压的目录。

    # 压缩
    [root@hepingfly hepingfly]# tar -jcvf test.gz.bz2 abd.txt bcd.txt 
    abd.txt
    bcd.txt
    [root@hepingfly hepingfly]# ll
    总用量 24
    -rw-r--r--. 1 root      root        160 225 23:11 test.gz.bz2
    ---------------------------------------------------------------
    # 解压缩
    [root@hepingfly hepingfly]# tar -jxvf test.gz.bz2 
    abd.txt
    bcd.txt
    ----------------------------------------------------------------
    # 压缩
    [root@hepingfly hepingfly]# tar -zcvf test.tar.gz abd.txt bcd.txt 
    abd.txt
    bcd.txt
    [root@hepingfly hepingfly]# ll
    总用量 12
    -rw-r--r--. 1 root      root         0 222 02:09 abd.txt
    -rw-------. 1 hepingfly hepingfly    0 221 00:37 bcd.txt
    -rw-r--r--. 1 root      root       154 225 23:14 test.tar.gz
    ----------------------------------------------------------------
    # 解压缩
    [root@hepingfly hepingfly]# tar -zxvf test.tar.gz 
    abd.txt
    bcd.txt
    
    --------------------------------------------------------------
    # 只查看不解压
    [root@hepingfly hepingfly]# tar -ztvf test.tar.gz 
    -rw-r--r-- root/root         0 2019-02-22 02:09 abd.txt
    -rw------- hepingfly/hepingfly 0 2019-02-21 00:37 bcd.txt
    
    --------------------------------------------------------------
    # 解压到指定目录(-C 一定要跟在压缩包后面)
    [root@hepingfly hepingfly]# tar -zxvf test.tar.gz -C aaaa/
    abd.txt
    bcd.txt
    
    --------------------------------------------------------------
    # 解压指定文件
    [root@hepingfly hepingfly]# tar -ztvf test.tar.gz         # 我先查看这个压缩包里面有哪些文件
    -rw-r--r-- root/root         0 2019-02-22 02:09 abd.txt
    -rw------- hepingfly/hepingfly 0 2019-02-21 00:37 bcd.txt
    [root@hepingfly hepingfly]# tar -zxvf test.tar.gz -C aaaa/ abd.txt 
    abd.txt
    # 我只把 abd.txt 文件解压到 aaaa 目录下
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    rar

    .rar 是 Windows 中常见的压缩格式,Linux 也可正确识别 .rar 格式,这可以方便和 Windows 系统通用压缩文件,其指令格式如下:

    rar a 生成文件名 源文件或源目录 # 压缩文件
    rar x 压缩包 指定目录 # 解压文件
    
    • 1
    • 2

    需要注意的是,Linux不自带 rar 压缩工具,需要自己下载安装:

    sudo apt install rar
    
    • 1

    比如我们要压缩文件 a.txtb.txtc.txttest.rar

    解压缩 test.rar~/Desktop


    zip

    .zip 也是 Windows 中最常用的压缩格式,Linux 也可正确识别 .zip 格式,这可以方便和 Windows 系统通用压缩文件,其指令格式如下:

    zip [选项] 压缩包名 源文件或源目录	
    
    • 1

    选项:

    • -r:压缩目录。

    比如我们要将 a.txtb.txtc.txt 压缩为 test.zip 文件:

    这里的 stored 0% 表示没有进行压缩,因为 *.txt 文件里什么都没有,如果压缩可能会导致文件更大,正常压缩会出现 deflated xx% 表示压缩率为 xx%,即压缩后的文件大小是原文件的 (100-xx)%

    可以使用 unzip 命令解压缩 .zip 格式文件,其指令格式如下:

    unzip [选项] 压缩包名
    
    • 1

    选项:
    -d:指定压缩位置。

    比如,我们想解压缩 test.zip~/Desktop 下:
    在这里插入代码片

  • 相关阅读:
    HR的职业规划
    电脑msvcp140.dll丢失问题的三种解决方法分享,快速修复dll问题
    有关嵌入式的 github
    高防IP的原理
    SpringCloud-05 Hystrix学习笔记
    云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析
    TIA博途中累计流量的两种计算方法示例
    【Flask】四、flask连接并操作数据库
    02Spring框架的特点以及jar包下载
    站内全文搜索,怎样能更好找到自己想要的信息?
  • 原文地址:https://blog.csdn.net/weixin_44491423/article/details/126788653