压缩_压缩包 - CSDN
  • .tar.gz 格式解压为tar-zxvfxx.tar.gz .tar.bz2格式解压为tar-jxvfxx.tar.bz2

    前言

    Linux常用命令中,有很多用于对文件的压缩或解压,本文将介绍这些解压缩命令中不常见却非常实用的用法。

    tar

    tar是linux中最常用的解压缩命令。tar命令可用于处理后缀名为tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。
    涉及参数说明:

    -c 建立新的压缩文件
    -r 添加文件到已经压缩的文件
    -u 添加改变了和现有的文件到已经存在的压缩文件
    -x 从压缩的文件中提取文件
    -t 显示压缩文件的内容
    -z 支持gzip解压文件
    -j 支持bzip2解压文件
    -v 显示操作过程
    -k 保留源有文件不覆盖
    -C 切换到指定目录
    -f 指定压缩文件
    
    --delete            删除包中文件
    --strip-components  去除目录
    --add-file          向包中添加文件
    

    压缩

    归档tar包,不压缩

    tar -cvf test.tar test1.log test2.log #归档多个文件
    tar -cvf test.tar test/*  #归档test目录下所有文件
    tar -cvf test.tar *.log  #归档所有以.log结尾的文件 
    

    由于这种方式不会进行压缩,仅做了归档,因此速度极快,同时占用空间也较大。

    归档并压缩为tar.gz或tar.bz2

    这种方式打包对文件进行了压缩:

    tar -zcvf test.tar.gz file1 file2 #打包,并以gzip压缩
    tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2压缩
    

    查看压缩包中的文件

    如果不想解压,只是想查看压缩包中的文件内容,可以使用-t参数:

    tar -tvf test.tar #可查看test包中有哪些文件
    

    打包后删除源文件

    有时候在打包后可能需要删除源文件,但一个个删除显得麻烦,我们可以使用--remove-files 选项:

    tar -zcvf test.tar.gz test.log --remove-files 
    

    打包除指定目录或文件以外的文件

    对于某些目录下的文件,可能只需要打包部分文件,因此可以使用--exclude选项排除一些不需要打包的文件:

    tar -zcvf test.tar.gz --exclude=test/*.log test/* #打包test目录下所有文件,排除以.log结尾的文件
    

    这里用到了--exclude选项,支持通配符和正则表达式,因此也非常强大。

    向压缩包中更新文件

    例如,压缩包中已经打入了test以及其他文件,现在你只想更新压缩包中的test文件,那么你可以使用--add-file选项:

    tar -tf test.tar --add-file=test #只针对tar包
    

    向tar包中增加文件

    向tar包中增加文件可使用-r参数:

    tar -rf test.tar testfile #在test.tar包中增加文件,只针对tar包
    

    删除压缩包中的文件

    在不解压的情况下,可使用--delete选项删除包中的文件:

    tar --delete -f test.tar  test1 #从test.tar中删除test1文件
    

    解压

    解压tar.gz和tar包到当前目录

    tar -xvf test.tar.gz
    tar -xvf test.tar 
    

    解压到指定目录

    tar -xvf test.tar.gz -C dir
    tar -xvf test.tar -C dir
    

    解压包中指定的文件

    例如test.tar.gz包中文件情况如下:

    1.txt
    log/
    log/1.log
    log/2.log
    log/2.log
    log/4.log
    log/5.log
    

    如果我们只需要解压出log目录下的1.log,只需要执行下面的命令:

    tar -xvf test.tar.gz log/1.log
    tar -xvf test.tar.gz log/1.log -C test #将1.log解压到test目录
    

    解压时去掉目录结构

    压缩包中的文件可能存在多级目录,常规方式解压出来后,对应目录也会存在。如果只想要压缩包的文件,可以去掉目录结构(注意:同一文件夹下文件名不能重):

    tar -xvf test.tar.gz --strip-components=1 #去掉一层目录
    

    解压时不覆盖原文件

    当前目录可能已经存在包中的文件,如果不想解压出来的文件覆盖当前已存在的文件,可使用-k参数(会抛出错误信息):

    tar -xvkf test.tar.gz
    

    特别提醒

    前面所提到的解压或者压缩带的f参数需要放在最后,因为它指定了压缩包名字,否则会出现解压或压缩失败。

    zip/unzip

    zip和unzip命令主要用于处理zip包。

    压缩

    涉及参数说明:

    -d 从压缩文件内删除指定的文件。
    -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
    -j 只保存文件名称及其内容,而不存放任何目录名称。
    -r 递归处理,将指定目录下的所有文件和子目录一并处理。
    -u 更换较新的文件到压缩文件内。
    -v 显示指令执行过程或显示版本信息。
    -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
    - <压缩效率> 压缩效率是一个介于1-9的数值。
    

    压缩文件

    zip -r test.zip test/ #打包test目录下的文件
    zip -rj test.zip test/ #打包test目录下文件,且压缩包不带test目录
    

    指定压缩率打包文件

    zip -r8 test.zip test/* #数值(1-9)越大,压缩率越高,耗时越长
    

    打包符号链接文件

    前面的命令只能打包普通文件,如果想要打包符号链接文件,则需要使用参数-y:

    zip  -ry test.zip test
    

    向压缩包中增加或更新文件

    有时候需要向压缩包中增加文件,但又不想重新解压打包,可以使用参数-u:

    zip -u test.zip test2 #向test.zip 包中增加test2文件
    

    压缩时加密

    压缩时如果需要对压缩包进行加密,可使用-P参数:

    zip -r test.zip test1 test -P 66666 #使用密码66666加密
    

    删除压缩包的特定文件

    zip -d test.zip test  #删除test.zip包中的test文件
    

    解压

    涉及参数说明:

    -l 显示压缩文件内所包含的文件
    -j 只保存文件名称及其内容,而不存放任何目录名称。
    -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该
    -v 显示指令执行过程或显示版本信息。
    -d 指定解压目录,目录不存在会创建
    

    查看压缩包中的文件信息

    unzip -l test.zip #可以看到压缩包中的文件名,日期等信息
    unzip -v test.zip #查看更多信息,例如crc校验信息等
    

    解压压缩包

    unzip -o test.zip -d dir #讲test.zip解压到dir目录
    

    解压包中指定的文件

    如果不知道需要解压的文件名,可先查看包中的文件,然后使用下面的方法:

    unzip -o test.zip "1.log" -d dir #解压包中的1.log文件到dir目录
    unzip -o tet.zip "*.log" -d dir  #解压包中所有的log文件
    

    解压时去掉目录结构

    压缩包中有多层目录结构,普通解压仍然会保留目录结构,如果只想要压缩包中的文件,可以使用-j参数:

    zip -oj test.zip -d ./temp  
    

    解压jar包

    jar包是java归档包,但同样可用unzip解压查看里面的文件:

    unzip -o java.jar -d dir
    

    gzip

    涉及参数说明:

    -k 保留源文件
    -d 解开压缩文件
    -r 递归处理,将指定目录下的所有文件及子目录一并处理
    -v 显示指令执行过程
    

    tar命令带有-z参数,并且打包成tar.gz文件时,便调用gzip进行了压缩。gzip对文本的压缩率约有60%~70%,压缩包文件常以gz为后缀。使用-k参数保留源文件:

    gzip -k ./* #当前目录下所有文件进行压缩,每个文件一个gz包
    gzip -rkv ./* 递归压缩
    

    解压也很简单:

    gzip -dv test.gz 
    

    bzip2

    tar命令使用-j参数将文件打包为tar.bz2时,便调用了bzip2进行压缩。bzip2压缩或解压后,会将源文件删除。如果需要保留源文件,可使用-k参数:

    bzip2 -zk test  #压缩test文件
    bzip2 -dk test.bz2  #解压
    

    rar/unrar

    rar和unrar命令并非linux发行版自带命令,需要另外安装。常见用法如下:

    rar a test.tar test  #将test文件压缩为test.tar
    rar e test.rar       #解压test.tar
    unrar x test.rar     #解压test.tar
    

    压缩率比较

    压缩率一般来说:

    tar.bz2>tar.gz>zip>tar
    

    压缩率越高,压缩以及解压的时间也就越长。

    总结

    对文件进行压缩能够节省磁盘空间,进行网络传输时,也能节省带宽,但是需要注意的是,空间和时间是需要根据实际应用进行权衡的。解压缩命令较多,为避免在其他平台使用不便,可选择常用命令进行压缩文件。

     

    展开全文
  • 文件的压缩压缩

    2018-09-10 19:12:15
    背景:看到文件压缩gzip,bzip2。脑子一热,想到能不能再次压缩文件?没有百度到,想要的答案,自己费事来try try。 看不懂的知识:https://blog.csdn.net/xuchuangqi/article/details/52939705 gzip 对于要压缩...

    背景:看到文件压缩gzip,bzip2。脑子一热,想到能不能再次压缩文件?没有百度到,想要的答案,自己费事来try try。

    看不懂的知识:https://blog.csdn.net/xuchuangqi/article/details/52939705

    gzip 对于要压缩的文件,首先使用LZ77算法的一个变种进行压缩,对得到的结果再使用Huffman编码的方法(实际上gzip根据情况,选择使用静态Huffman编码或者动态Huffman编码,详细内容在实现中说明)进行压缩。所以明白了LZ77算法和Huffman编码的压缩原理,也就明白了gzip的压缩原理。我们来对LZ77算法和Huffman编码做一个简单介绍。
     

    LZ77算法的压缩原理:使用滑动窗口寻找匹配串

    LZ77从文件的开始处开始,一个字节一个字节的向后进行处理。一个固定大小的窗口(在当前处理字节之前,并且紧挨着当前处理字节),随着处理的字节不断的向后滑动,就象在阳光下,飞机的影子滑过大地一样。对于文件中的每个字节,用当前处理字节开始的串,和窗口中的每个串进行匹配,寻找最长的匹配串。窗口中的每个串指,窗口中每个字节开始的串。如果当前处理字节开始的串在窗口中有匹配串,就用(之间的距离,匹配长度) 这样一对信息,来替换当前串,然后从刚才处理完的串之后的下一个字节,继续处理。如果当前处理字节开始的串在窗口中没有匹配串,就不做改动的输出当前处理字节。

     

    Huffman编码使用Huffman树来产生编码:统计每个符号(我们把字节的256种值看作是256种符号)的出现次数。然后根据符号的出现次数,建立Huffman树,通过Huffman树得到每个符号的新的编码。对于文件中出现次数较多的符号,它的Huffman编码的位数比较少。对于文件中出现次数较少的符号,它的Huffman编码的位数比较多。然后把文件中的每个字节替换成他们新的编码。

     

     正文:

    压缩再压缩

    一、单个文件的压缩再压缩

    1、能否两次使用相同的命令进行压缩?

    2、能否两次使用不同的命令进行交替压缩?

    3、在上面的基础上 ,能否进行n次压缩?

    二、目录文件的压缩

    4、关心的是,目录中含有压缩文件,先打包目录文件,再压缩,目录内部的压缩文件的情况。

     

    try 问题1:能否两次使用相同的命令进行压缩?

    思路:在/tmp下建立一个目录testing1,目录中vim一个文件try1,用gzip命令连续最大程度压缩try1两次

    上面说明,可以两次压缩。第一次压缩97.4%,文件大小由545byte变成45byte,文件变小。

                       第二次压缩11.1%,大小从45byte变成74byte,文件总体变大。

    它们在图形界面下是这个样子。那压缩两次的文件是不是解压两次,才能变为原文件了?

     

    种什么因故,得什么果。上面显示,压缩两次的文件,需要解压两次才行。

     

    同样的方法,我们再试试能否用bzip2命令进行两次压缩。

    这就挺有意思的, bzip2能压缩一次,压缩比为88.99%。但是再次压缩的时候,显示.bz2已经压缩过了。

    那这是不是说,这就证明bzip2不能进行两次压缩呢?

    好像并不能,咋们要是第一次压缩的时候,压缩出来的文件命名不含有.bzip,它能否接着压缩了?try try。

    不急,咋们先进入图形界面中看一看,会发现一些好玩的现象

    这里并不是再次压缩,try.bz2.bz2只是一个空壳子,里面没有东西。咋们验证一下。

    好,咋们把上次的bzip2压缩的文件删除,通过bzip2命令把try压缩成trybz2。再将 trybz2一次压缩文件,用bzip2命令再次压缩。

    上面说明,bzip2也能压缩文件两次。但是有.bz2后缀名的文件,无法用bzip2再次压缩。

     

    try问题2:能否两次使用不同的命令进行交替压缩?

     结果当然也是可以的,即能使用不同的命令进行交替压缩。

    那能否用bzi2压缩try.gz.bz2.gz呢?即try.gz.bz2.gz算不算含有.bz2?      答案是:try.gz.bz2.gz不算含有.bz2

    我觉得上面已经够智障的,压缩n的事情就智障透顶了。丫的,花的时间有点多。

     

    try问题4:关心的是,目录中含有压缩文件,先打包,再压缩,目录内部的压缩文件情况。

    咋们先来猜一猜答案:我猜测,不会压缩打包文件中已经压缩的文件了。

    实验是检验真理的标准。

    首先是删除不必要的文件

    再打包,压缩

    但是,我也不知道,这包里的压缩文件有没有再次压缩。因为里面压缩和外面的压缩方式不同。

    这是一个很有意思也很有价值的问题:目录中含有压缩文件,先打包,再压缩,内部的压缩文件会不会再次被压缩

    这个问题留着,现在我解决不了。因为像bzip2那样,能认出自己已经压缩过的文件不奇怪。

    但bzip2能不能识别出其他方式压缩出来的文件,并避免再次压缩呢?

    这个问题留着,说不定,以后就知道了。(所有的压缩文件在前方有个统一的标注?)

     

    展开全文
  • Quick Benchmark: Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO EDIT: Add zstd Contents  [hide]  1 Selected archives2 Test conditions3 The ...3.1 Compressed

    Quick Benchmark: Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO

    EDIT: Add zstd

    Selected archives

    I have selected:

    • Source of the kernel to test source compression
    • Stream protocol with flush

    Test conditions

    Tests were run on a desktop:

    • Intel Core i5 CPU 750 at 2.67GHz
    • 8GB of DDR3 memory
    • tmpfs as ram disk is used
    • Linux kernel 3.3.2, gentoo amd64
    • CFLAGS: -pipe -O2 -g -floop-block -floop-interchange -fgraphite
    • bzip2-1.0.6-r3, xz-utils-5.0.3, gzip-1.4

    Only normal mode will be tested firstly.

    The file test results

    Note: The first column with numbers 1..9 indicates the compression setting passed to gzip, bzip2 and lzmash (e.g. "gzip -9").

    Tarball mode from linux-3.3, original size: 466083840 (445M)

    Compressed file size in bytes

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 124875819 (120M) 93997047 (90M) 85618192 (82M) 72042179 (69M) 85630688 (82M) 72069084 (69M) 165844264 (159M) 168012430 (161M)
    2 119040249 (114M) 87741348 (84M) 81480824 (78M) 70264395 (68M) 81492504 (78M) 70282944 (68M) 165844264 (159M) 166987891 (160M)
    3 114931686 (110M) 84816957 (81MB) 79575087 (76MB) 69015118 (66MB) 79586568 (76MB) 69029204 (66MB) 165844264 (159M) 166987891 (160M)
    5 102328357 (98M) 81837328 (79M) 69557610 (67M) 67879362 (65M) 69583428 (67M) 67875988 (65M) - 166987891 (160M)
    7 100128597 (96M) 80197758 (77M) 67276420 (65M) 66868212 (64M) 67294092 (65M) 66852780 (64M) - 116205578 (111M)
    9 99740486 (96M) 78963640 (76M) 65841213 (63M) 65362226 (63M) 65859432 (63M) 65372696 (63M) - 114824102 (110M)

    Compression ratio

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 26.8% 20.2% 18.4% 15.5% 18.4% 15.5% 35.6% 36.0%
    2 25.5% 18.8% 17.5% 15.1% 17.5% 15.1% 35.6% 35.8%
    3 24.7% 18.2% 17.1% 14.8% 17.1% 14.8% 35.6% 35.8%
    5 22.0% 17.6% 14.9% 14.6% 14.9% 14.6% - 35.8%
    7 21.5% 17.2% 14.4% 14.3% 14.4% 14.3% - 24.9%
    9 21.4% 16.9% 14.1% 14.0% 14.1% 14.0% - 24.6%

    Compression time

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 8.1s 58.3s 31.7s 4m37s 32.2s 4m40s 1.3s 1.6s
    2 8.5s 58.4s 40.7s 4m49s 41.9s 4m53s 1.4s 1.6s
    3 9.6s 59.1s 1m2s 4m36s 1m1s 4m39s 1.3s 1.5s
    5 14s 1m1s 3m5s 5m 3m6s 4m53s - 1.5s
    7 21s 1m2s 4m14s 5m52s 4m13s 5m57s - 35s
    9 33s 1m3s 4m48s 6m40s 4m51s 6m40s - 1m5s
    • gzip -1 vs lz4 -1 on x86: lz4 6.2x more fast
    • gzip -1 vs lz4 -1 on ARM: lz4 3.6x more fast

    Decompression time

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 3.5s 3.4s 6.7s 5.9s 7.2s 6.5s 0.4s 1.5s
    2 3s 15.7 6.3s 5.6s 6.8s 6.3s 0.3s 1.4s
    3 3.2s 15.9s 6s 5.6s 6.7s 6.2s 0.4s 1.4s
    5 3.2s 16s 5.5s 5.4s 6.2s 6s - 1.5s
    7 3s 15s 5.3s 5.3s 5.9s 5.8s - 1.3s
    9 3s 15s 5s 5.1s 5.6s 5.6s - 1.2s

    Memory requirements on compression

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 0.4MB 1.1MB 8.3MB 12.6MB 8.3MB 12.5MB 12MB 0.7MB
    2 0.4MB 1.9MB 15.8MB 24MB 15.8MB 24MB 12MB 0.7MB
    3 0.4MB 2.7MB 30.7MB 46.9MB 30.8MB 47M 13.2MB 0.7MB
    5 0.4MB 4.2MB 93MB 93MB 93MB 93MB - 0.7MB
    7 0.4MB 5.7MB 185MB 185MB 185MB 185MB - 0.9MB
    9 0.4MB 7.2MB 672MB 673MB 673MB 673MB - 0.9MB
    • Note: lz4 it's the program using this size, the code for internal lz4 use very less memory

    Memory requirements on decompression

      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
      gzip bzip2 lzma lzma -e xz xz -e lz4 lzop
    1 0.1MB 0.3MB 1MB 1MB 1MB 1MB 13MB 0.2MB
    2 0.1MB 0.9MB 2.1MB 2.1MB 2.1MB 2.1MB 12MB 0.2MB
    3 0.1MB 1.1MB 4.1MB 4.1MB 4.0MB 4.0MB 13MB 0.2MB
    5 0.1MB 1.9MB 8.1MB 8.1MB 8.1MB 8.1MB - 0.2MB
    7 0.1MB 2.6MB 16MB 16MB 16MB 16MB - 0.2MB
    9 0.1MB 3.4MB 64MB 64MB 64MB 64MB - 0.2MB
    • Note: lz4 it's the program using this size, the code for internal lz4 use very less memory

    Cli used for -1 compression:

    • time gzip -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;time gunzip linux-3.3.tar*
    • time bzip2 -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;time bunzip2 linux-3.3.tar.bz2
    • time lzma -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time unlzma linux-3.3.tar*
    • time lzma -e -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time unlzma linux-3.3.tar*
    • time xz -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time unxz linux-3.3.tar*
    • time xz -e -1 linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time unxz linux-3.3.tar*
    • time /home/user/lz4-read-only/lz4demo64 -c0 linux-3.3.tar linux-3.3.tar.lz4;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time /home/user/lz4-read-only/lz4demo64 -d linux-3.3.tar.lz4 linux-3.3.tar;rm linux-3.3.tar.*
    • time lzop -1 linux-3.3.tar;rm linux-3.3.tar;du -ksh linux-3.3.tar*;ls -l linux-3.3.tar*;read PAUSe;time lzop -d linux-3.3.tar*;rm linux-3.3.tar.*

    Stream test

    Time to compress

      gzip zlib lz4 lz4hc none
      gzip zlib lz4 lz4hc none
    1 376 368 130 311 10
    2 371 391      
    3 378 362      
    5 390 392      
    7 389 387      
    9 393 384      

    Time to decompress

      gzip zlib lz4 lz4hc none
      gzip zlib lz4 lz4hc none
    1 1797 1778 809 796 9
    2 1841 1831      
    3 1771 1780      
    5 1806 1960      
    7 1861 1851      
    9 1835 1806      

    Messured with:

    timespec tstart,tstop;
    clock_gettime(CLOCK_REALTIME, &tstart);
    //compression/decompression
    clock_gettime(CLOCK_REALTIME, &tstop);
    compressionTime+=((quint64)tstop.tv_sec * 1000000LL + (quint64)tstop.tv_nsec / 1000LL)-((quint64)tstart.tv_sec * 1000000LL + (quint64)tstart.tv_nsec / 1000LL);
    

    Memory used

    gzip zlib lz4 lz4hc none
    gzip zlib lz4 lz4hc none
    0.5MB 0.5MB 0MB 0MB 0MB

    The socket is always used as full duplex, then it's compression + decompression memory.

    Compression ratio

    It's transferred size/raw size (lower is better)

    With the benchmark application

    Uploaded at: https://github.com/alphaonex86/debug-devel/tree/master/QTcpCompressionBenchmark

    gzip zlib lz4 lz4hc none
    gzip zlib lz4 lz4hc none
    0.99 0.97 1.59 1.59 1

    The most over-head of small packet (3Bytes) is drop by high compression with zlib/gzip for the big packet.

    Graphics

    Compression-ratio.png Compression-time.png

    Quick benchmark on ARM64

    A quick benchmark on ARM64 (odroid, Cortex A53), on kernel Image (12MB), use default compression level (-6) because no way to configure the compression level of btrfs

    The speed is on compressed stream, mean the hdd.

      xz gzip lz4 zstd
    Size 4.2M 5.5M 7.8M 5.8M
    Compression speed 0.2 MB/s 1.8 MB/s 21.4 MB/s 2.8 MB/s
    Decompression speed 4.8 MB/s 13.6 MB/s 48.4 MB/s 19.1 MB/s
    展开全文
  • 打包程序:tar c: 创建文档 t: 列出存档内容 x:提取存档 f: filename 要操作的文档名 v:详细信息 一:打包 打包:是指把文件整合在一起,不压缩 ...压缩:把打包好的文件压缩,便于存储 ...

    打包程序:tar

    • c:   创建文档
    • t: 列出存档内容
    • x:提取存档
    • f: filename 要操作的文档名
    • v:详细信息

    一:打包

    打包:是指把文件整合在一起,不压缩

    1.将文件打包:tar cf a.tar /etc/

    2.列出文档内容:tar tf a.tar

    3.提取文档内容:tar xf a.tar

    二:压缩

    压缩:把打包好的文件压缩,便于存储

    注:压缩一定加上后缀,便于解压,便于观看

    Linux 主要有3种压缩方式

      • gzip:   压缩速度最快,历史最久,应用最广泛;
      • bzip2: 压缩成的存档文件小,可用性不如gzip;
      • xz:      最新的方式,提供最佳的压缩率。

    注:实际中三种情况都可能遇到,所以必须有一定的命名方式

      • z     用于gzip压缩:      filename.tar.gz
      • j      用于bzip压缩:      filename.tar.bz2
      • J      用于xz压缩:         filename.tar.xz

    1.先看看压缩前文件大小:ls -lh

    2.gzip压缩:tar zcf a.tar.gz a.tar

    3.bzip2缩:tar jcf a.tar.bz2 a.tar

    4.xz压缩:tar Jcf a.tar.xz a.tar

    5.压缩率对比:xz > bzip2 > gzip

    三:解压

    解压:将压缩好的文件解压打开

    1.解压缩文件加一个参数x:tar xf a.tar.gz

    2.其他类型解压:tar xf a.tar.bz2   tar xf a.tar.xz

    展开全文
  • 压缩的好处和坏处

    2020-05-29 15:33:23
    1. 压缩的好处和坏处 压缩技术分为有损和无损:大数据场景下我们用到的都是无损;不允许丢失数据 好处 减少存储磁盘空间 降低IO(网络的IO和磁盘的IO) 加快数据在磁盘和网络中的传输速度,从而提高系统的...
  • 几种压缩算法

    2018-01-24 16:37:34
    一、 行程长度压缩  原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。 例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同颜色区域的图像, 用RLE压缩方法...
  • Linux之压缩压缩

    2019-04-15 16:17:09
    1 Linux上常见的压缩命令: (1)Linux上常见压缩文件扩展名: *.Z: compress程序压缩文件,目前使用较少。已经有gzip替换了。 *.gz: gzip程序压缩的文件。 *.bz2:bzip2程序压缩的文件,比gzip的压缩比更好。 无论...
  • 1,zip压缩工具。 zip的压缩包在windows和linux中都比较常用,它可以压缩目录和文件,压缩时录时,需要指定目录下的文件。zip后面先跟目标文件名,即压缩后得自定义压缩包名,然后跟要压缩的文件或目录。没有该命令...
  • 一、压缩列表概述  压缩列表是一种编码过的“链表”旨在实现高效的内存管理。它可以存储整数和字符串,整数以小端序存储,字符串则以字节数组存储。压缩列表的内存存储结构如下图所示:  其中zlbytes、zltail...
  • 一、gzip压缩技术 gzip(GNU- ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多。gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端...
  • 对于我们这种资料特别多,随时都需要跟工作伙伴沟通传递资料的人来说,一款方便的压缩软件真的太重要了,不仅可以节省时间,节省内存,更重要的是提高工作效率,今天废鱼就给大家推荐几款常用压缩软件。 The ...
  • 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的...
  • 打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法是文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩...
  • 一、打包的概念  打包:指将多个文件(或目录)合并成一个文件,方便在不同节点... Linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名时必须的,因为linux支持的压缩命令较多,不同的压缩技术使...
  • 哈夫曼压缩与解压缩

    2019-06-13 00:24:05
    哈夫曼压缩与解压缩 目录 哈夫曼压缩与解压缩 一:引言 二:主要技术点 三:过程介绍 1、压缩: 2、解压缩 四:详细分析 一:准备过程 二:压缩 三:解压缩 五:结果演示 六:总结 七:源码地址 一:...
  • java高清无损图片压缩

    2019-03-29 22:46:57
    Java高清无损图片压缩 (本文禁止转载,如需转载请联系本人:微信/QQ同号:969987665)简单介绍thumbnailator-0.4.5.jar 官方下载网址语法使用(超级简单的,再也没有比这个再简单的东西)一、保持和原图像一样的宽高...
  • Java解压缩zip - 多个文件(包括文件夹) 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压。 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参数列表里面... ZipFiles(zip...
  • tar在linux上是常用的打包、压缩、加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 <br /> 参数: <br /> -c :create 建立压缩档案的参数; <br /> -x : 解压缩压缩档案的...
  • 无损压缩经典算法

    2019-10-30 11:50:00
    @前言总结经典的文件压缩算法原理,主要包括:哈夫曼压缩算法及其延伸,LZ77算法及其演变算法,LZ78算法及其演变算法,几何编码算法Arithmetic Coding。内容部分摘录翻译自港大‘多媒体技术’硕士课程1.进行文件压缩...
  • (1)打包并压缩文件 Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。 而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。 命令:tar -zcvf 打包压缩后的文件名 ...
1 2 3 4 5 ... 20
收藏数 1,165,557
精华内容 466,222
关键字:

压缩