• Linux文件打包及压缩、解包及解压


    目录

     前言

    什么是压缩?

    tar的介绍与使用

    简介

    打包压缩文件

    打包文件(不压缩)

    gzip压缩类型压缩文件

    bzip压缩类型压缩文件

    xzip压缩类型压缩文件

     解包解压文件

    简介

    解压缩(解压到当前目录)

    解压缩(指定解压到的目录)

    总结


    前言

            前面学习了文件的查找,这篇文章将学习Linux中文件的打包及解压、文件的解包和解压。这就是这篇文章的学习目标,学会如何打包压缩,解包解压。


    什么是压缩?

            压缩的原理就是去重法,在一个目录或者文件中有多个重复的内容,在压缩过程中会将这些重复的内容用简短的内容来代替,压缩的文件是无法直接打开的,需要经过解压才可以打开使用。


    tar的介绍与使用

    简介

            tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以作用于任何环境中,他的使用权限是所有用户。
    建议针对目录。

    打包压缩文件

    命令语法:语法:tar  选项  压缩包名称   源文件

    选项可用:

    • -cf:c是create   f是file,cf是打包。
    • -czf:gzip压缩类型压缩文件,z是gzip。
    • -cjf:bzip压缩类型压缩文件,j是bzip。
    • -cJf:xzip压缩类型压缩文件,J是xzip。

    注意:czf、cjf、cJf这些选项的字母顺序不能乱,不然会报错。

    打包文件(不压缩)

    命令:tar   -cf   压缩名   需要压缩的文件

    代码如下(示例):

    1. //查看test文件内容
    2. [root@localhost ~]# ll /test
    3. 总用量 0
    4. //打包etc文件到test/目录下,并且名称为tar.tar
    5. [root@localhost ~]# tar -cf /test/tar.tar /etc
    6. tar: 从成员名中删除开头的“/”
    7. //查看test目录内容
    8. [root@localhost ~]# ll /test
    9. 总用量 38272
    10. -rw-r--r--. 1 root root 39188480 1031 14:14 tar.tar

             仅仅是打包了etc/目录,并没有压缩。

    gzip压缩类型压缩文件

    命令:tar   -czf   压缩名   需要压缩的文件

    代码如下(示例):

    1. //调换f和z的顺序压缩文件失败
    2. [root@localhost ~]# tar -cfz /test/tar-gzip.tar /etc
    3. tar: 从成员名中删除开头的“/”
    4. tar: /test/tar-gzip.tar:无法 stat: 没有那个文件或目录
    5. tar: 由于前次错误,将以上次的错误状态退出
    6. //并没有压缩成功
    7. [root@localhost ~]# ll -h /test/
    8. 总用量 38M
    9. -rw-r--r--. 1 root root 38M 1031 14:14 tar.tar
    10. //正确顺序czf压缩etc到test目录,压缩包名称为tar-gizip.tar
    11. [root@localhost ~]# tar -czf /test/tar-gzip.tar /etc
    12. tar: 从成员名中删除开头的“/”
    13. //查看test下文件内容
    14. [root@localhost] ll -h /test/
    15. 总用量 50M
    16. -rw-r--r--. 1 root root 12M 1031 14:36 tar-gzip.tar
    17. -rw-r--r--. 1 root root 38M 1031 14:14 tar.tar

             由代码可以看出czf这三个字母的顺序不能颠倒,否则会报错。如图所见,仅仅打包的文件大小为38M,压缩文件大小为12M,文件大小明显减少很多,为我们省去空间,这就是压缩的目的。

    bzip压缩类型压缩文件

    命令:tar -cjf  压缩文件名    需要压缩的文件

    代码如下(示例):

    1. //使用bzip格式解压文件etc到test目录,压缩包名为tar-bzip.tar
    2. [root@localhost ~]# tar -cjf /test/tar-bzip.tar /etc
    3. tar: 从成员名中删除开头的“/”
    4. [root@localhost ~]# ll -h /test
    5. 总用量 60M
    6. -rw-r--r--. 1 root root 11M 1031 14:41 tar-bzip.tar
    7. -rw-r--r--. 1 root root 12M 1031 14:36 tar-gzip.tar
    8. -rw-r--r--. 1 root root 38M 1031 14:14 tar.tar

    使用cjf选项压缩文件的时候会发现压缩时间比czf选项压缩文件时间长。

    xzip压缩类型压缩文件

    命令:tar   -cJf   压缩文件名    需要压缩的文件

    代码如下(示例):

    1. //以xzip格式压缩etc目录到test目录,压缩包名为/tar-xzip.tar
    2. [root@localhost ~]# tar -cJf /test/tar-xzip.tar /etc
    3. tar: 从成员名中删除开头的“/”
    4. [root@localhost ~]# ll -h /test
    5. 总用量 68M
    6. -rw-r--r--. 1 root root 11M 1031 14:41 tar-bzip.tar
    7. -rw-r--r--. 1 root root 12M 1031 14:36 tar-gzip.tar
    8. -rw-r--r--. 1 root root 38M 1031 14:14 tar.tar
    9. -rw-r--r--. 1 root root 8.3M 1031 14:46 tar-xzip.tar

            如图所示,各种压缩方法的压缩文件后的大小有所不一样,当我们压缩的时候明显感觉使用不同的方法压缩文件,等待的时间也是不一样的,压缩时间和压缩比例成正比,压缩后的文件大小越小,压缩所需要的时间越长,在生产环境下,我们一般追求速率,一般选择压缩时间短的压缩方法进行对文件的压缩。


     解包解压文件

    简介

            打包压缩后的文件不是目录了是文件用cat查看会乱码,不是目录是无法用命令进入到里面的,这个时候我们需要对压缩文件进行解包解压操作。

    解压缩(解压到当前目录)

    命令:tar   -xf    压缩包名称

    代码如下(示例):

    1. //进入/test目录
    2. [root@localhost ~]# cd /test
    3. [root@localhost test]# pwd
    4. /test
    5. //解压tar-gzip到当前目录
    6. [root@localhost test]# tar -xf /test/tar-gzip.tar
    7. //查看当前目录信息,etc解压成功
    8. [root@localhost test]# ll
    9. 总用量 69240
    10. drwxr-xr-x. 140 root root 8192 1020 15:18 etc
    11. -rw-r--r--. 1 root root 10663380 1031 14:41 tar-bzip.tar
    12. -rw-r--r--. 1 root root 12337613 1031 14:36 tar-gzip.tar
    13. -rw-r--r--. 1 root root 39188480 1031 14:53 tar.tar
    14. -rw-r--r--. 1 root root 8688348 1031 14:46 tar-xzip.tar
    15. //切换到tartest目录
    16. [root@localhost test]# cd /tartest
    17. [root@localhost tartest]# pwd
    18. /tartest
    19. //解压tar-gzip到当前目录
    20. [root@localhost tartest]# tar -xf /test/tar-gzip.tar
    21. //查看当前目录信息,解压文件成功
    22. [root@localhost tartest]# ll
    23. 总用量 12
    24. drwxr-xr-x. 140 root root 8192 1020 15:18 etc

    如代码所示,切换不同的目录解压文件,解压后的文件到了当前所在目录。

    解压缩(指定解压到的目录)

    命令:tar   -xf   需要接下的压缩包  -C  需要解压到的路径

    代码如下(示例):

    1. //创建两个新的文件夹
    2. [root@localhost tartest]# mkdir /tartest1
    3. [root@localhost tartest]# mkdir /tartest2
    4. //解压tar-bzip.tar到tartest1目录中
    5. [root@localhost tartest]# tar -xf /test/tar-bzip.tar -C /tartest1
    6. //查看tartest1目录,指定解压路径成功
    7. [root@localhost tartest]# ll /tartest1
    8. 总用量 12
    9. drwxr-xr-x. 140 root root 8192 1020 15:18 etc
    10. //解压tar-bzip.tar到tartest2目录中
    11. [root@localhost tartest]# tar -xf /test/tar-bzip.tar -C /tartest2
    12. //查看tartest2目录,指定解压路径成功
    13. [root@localhost tartest]# ll /tartest2
    14. 总用量 12
    15. drwxr-xr-x. 140 root root 8192 1020 15:18 etc

    如代码所示,指定解压路径后,解压后的文件会自动到指定的路径中。


    总结

            本篇文章主要学习了解压缩原理,压缩的好处可以节省空间,学习压缩解压文件的操作,并且需要注意压缩选项的字母顺序不能乱否则会报错操作失败。


    创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

  • 相关阅读:
    全志V853芯片在Tina下E907启动方式的选择
    shell 判断语句
    vscode运行Live Server报错:Windows找不到文件Microsoft Edge
    Vue3留言墙项目——主体部分静态、mock
    Python-Websocket的介绍及使用方法
    SQL必知会(二)-SQL查询篇(1)-检索数据
    [ vulhub漏洞复现篇 ] 阿里巴巴Nacos身份验证绕过(nacos未授权)(CVE-2021-29441)
    智慧公厕改变城市生活,厕所革命标杆应用解决方案
    自动化测试框架
    Tauri 2.0.0 beta环境搭建
  • 原文地址:https://blog.csdn.net/s1429583654/article/details/127614045