• Linux系统下压缩与解压命令


    参考链接:Linux文件压缩与打包 - Sakura_lht - 博客园

    关键命令:
    压缩:gzip -9 -v -c test.txt>test.gz

    -c  :将压缩的数据输出到屏幕上,通过数据流重定向来处理

    -d  :解压缩参数

    -t  :用来检验压缩文件的一致性,看看文件是否有错误

    -v  :输出文件压缩比等信息

    -#  :压缩等级0-9,1-9压缩比增大速度变慢,默认为6


    解压:gzip -d test.gz

    备注:4.2G的CSV文件压缩后约100M

    正文

    Linux文件压缩与打包

    1.压缩与打包

    压缩:利用更节省空间的记录方式来记录文件数据,让文件占用的容量下降。优点:相同容量能够存储更多数据,传输时数据量降低,从而速度更快。

    打包:将多个文件打包为一个大文件,实际文件占用的容量没有下降。优点:让文件集合有了一个统一的名称。

    2.Linux常见的压缩文件拓展名

    *.gz gzip压缩的文件

    *.bz2 bzip2压缩的文件

    *.tar tar程序打包的文件

    *.tar.gz tar程序打包,gzip压缩的文件

    *.tar.bz2 tar程序打包,bzip2压缩的文件

    3.gizp压缩命令

    使用最广的压缩命令,可以解开compress,zip,gzip压缩过的文件

    gzip  [-cdtv#]  [文件名]

    -c  :将压缩的数据输出到屏幕上,通过数据流重定向来处理

    -d  :解压缩参数

    -t  :用来检验压缩文件的一致性,看看文件是否有错误

    -v  :输出文件压缩比等信息

    -#  :压缩等级0-9,1-9压缩比增大速度变慢,默认为6

    xxx@xxx:~/test$ gzip -9 -v -c test.txt>test.gz

    test.txt:     38.0%

    xxx@xxx:~/test$ ls

    test.gz  test.txt

    xxx@xxx:~/test$ gzip -d test.gz

    xxx@xxx:~/test$ ls

    test  test.txt

    zcat可查看gzip压缩后的文本文件

    4.bzip2压缩命令

    比gzip压缩比更好的压缩命令

    bzip2   [-cdkzv#] 文件名

    -c  :将压缩过程中产生的数据输出到屏幕上

    -d  :解压缩的参数

    -k  :保留原文件

    -z  :压缩的参数

    -v :可以显示出原文件/压缩文件的压缩比

    -#  :同gzip

    xxx@xxx:~/test$ bzip2 -kvz test.txt

      test.txt:  1.366:1,  5.858 bits/byte, 26.78% saved, 534 in, 391 out.

    xxx@xxx:~/test$ ls

    test.txt  test.txt.bz2

    5.tar打包命令

    多个文件打包成一个大文件,便于压缩(若不打包,压缩则是对每一个文件分别压缩,打包后便时对整体压缩)

    tar [-j|z]  [-cv]  [-f 新建的文件名]  filename  //打包与压缩

    tar    [-j|z]  [-tv]  [-f  新建的文件名]  filename //查看文件名

    tar    [-j|z] [-xv]  [-f  新建的文件名] [-C 目录] //解压缩

    参数:

    -c  :新建打包文件

    -t  :查看打包文件的内容中有那些文件名

    -x  :解打包或解压缩

    以上3条不可出现在同一串命令中

    -j  :通过bzip2的支持来压缩/解压缩

    -z  :通过gzip的支持来压缩/解压缩

    -v  :压缩/解压缩过程中显示正在处理的文件名

    -f  :后面接要处理的文件名

    -C  :特定目录解压

    -p  :保留备份数据的 原本权限与属性

    简单记录  

    gzip压缩:tar  -zcvf  filename.tar.gz  要压缩的文件目录或名称

    gzip解压:tar  -zxvf  filename.tar.gz -C 解压的目录

    gzip查看:tar  -zcvf  filename.tar.gz

    bzip2压缩:tar  -jcvf  filename.tar.bz2  要压缩的文件目录或名称

    bzip2解压:tar  -jxvf  filename.tar.bz2 -C 解压的目录

    bzip2查看:tar  -jcvf  filename.tar.bz2

    解开某一个文件

    tar -jtvf [打包文件] |grep '部分文件名' //查看

    tar -jxvf [打包文件] [待解开的文件名]

    xxx@xxx:~$ tar -jcvf /home/lht/test2/test.tar.bz2 test

    test/

    test/world.txt

    test/test111.txt

    test/test333.txt

    test/444.txt

    test/hello.txt

    test/test.txt

    test/.hello.swp

    test/test222.txt

    xxx@xxx:~/test2$ tar -jtvf test.tar.bz2 |grep 'test/test' //查看

    -rw-r--r-- xxx/xxx           0 2018-01-21 22:14 test/test111.txt-rw-r--r-- xxx/xxx           0 2018-01-21 22:14 test/test333.txt-rw-r--r-- xxx/xxx         534 2018-01-21 19:54 test/test.txt-rw-r--r-- xxx/xxx           0 2018-01-21 22:14 test/test222.txt

    xxx@xxx:~/test2$ tar -jxvf test.tar.bz2 test/test111.txt //解单个文件

    test/test111.txt

    xxx@xxx:~/test2$ ls

    test  test.tar.bz2

    xxx@xxx:~/test2$ ls test

    test111.txt

    打包某目录,不包含某些文件

    tar -jcvf  [打包文件名]   --exclude=不需要的文件 [需要打包的文件]

    xxx@xxx:~/test2$ tar -jcvf test2.tar.bz2 --exclude=test/test* /home/xxx/testtar: 从成员名中删除开头的“/”/home/xxx/test/

    /home/xxx/test/world.txt/home/xxx/test/444.txt/home/xxx/test/hello.txt/home/xxx/test/.hello.swp //只打包了不包含 test/test的文件

    仅备份新文件

    tar -jcvf  [打包的文件名] --newer-mtime='时间' [需要打包的文件]

    上述命令即可只打包某时间后改变过的文件

  • 相关阅读:
    SpringBoot - 如何将项目打包成WAR包?
    字符串方法+ES6中字符串的方法
    抖音在线点赞任务发布接单运营平台PHP网站源码多个支付通道+分级会员制度,附带系统搭建教程
    SpringBoot服务集成ELK
    探索环保葡萄酒之生物动力
    NISP和CISP中渗透测试的思路是什么?
    zabbix分布式系统监控
    计算机毕业设计ssm+vue+elementUI 基于vue的消防物资存储系统
    深入理解强化学习——强化学习和有监督学习
    超级账本Fabric2.4自定义集群启动(修改官方Demo)
  • 原文地址:https://blog.csdn.net/T0620514/article/details/127804020