跳转至

时间:2019/2/2 11:51:30

Linux 文件压缩与解压#

由于文本编码的问题,会导致一些字符占用的空间没有被完全使用,高位的 0 都被浪费掉。 因此针对编码方式出现了一些压缩技术,将最经常出现的字符用更短的bit位表示,比如 哈夫曼编码。

也有一些其它的压缩技术如当一个字符出现100次的时候不在文件中记录100次,而是使用 100_1 类似的方式来表示,达到用更少的空间表示更多数据的效果。

压缩文件会使文件大小减小,减少文件在传输过程中的空间以及网络占用。

文件压缩#

zip#

gzip 可以打开 compress zip gzip 等指令压缩的文件。压缩文件后缀 .gz

  • -d:解压文件
  • -c:将压缩内容输出到屏幕上。
  • -t:检查压缩文件的一致性。
  • -v: 显示原始文件/压缩文件压缩比等信息。
  • -#: #代表数字,-1到-9,数越小压缩率越高。
    1
    2
    # 保留原始文件压缩
    gzip -c test.text > test.txt.gz
    

注:对应的查看压缩文件内容的命令 zcat zmore zless zgrep

bzip2 用于替换zip达到提高压缩效率的目的#

压缩文件后缀:.bz2

  • -d:解压文件
  • -c:将压缩内容输出到屏幕上。
  • -t:检查压缩文件的一致性。
  • -k:保留原始文件,而不会删除原始的文件喔
  • -v: 显示原始文件/压缩文件压缩比等信息。
  • -#: #代表数字,-1到-9,数越小压缩率越高。

注:对应的查看压缩文件内容的命令 bzcat bzmore bzless bzgrep

xz较bzip压缩率更高#

压缩文件后缀:.xz

  • -d:解压文件
  • -c:将压缩内容输出到屏幕上。
  • -t:检查压缩文件的一致性。
  • -k:保留原始文件,而不会删除原始的文件喔
  • -l: 列出压缩文件的相关信息。
  • -#: #代表数字,-1到-9,数越小压缩率越高。
    1
    xz -l services.xz
    

注:对应的查看压缩文件内容的命令 xzcat xzmore xzless xzgrep

tar文件归档#

把目录里面的文件归档到一个文件中,同时提供压缩和解压的功能。

压缩与解压:

  • -c:打包文件。
  • -x:解压打包文件。

压缩和解压选项:

  • -z: gzip 格式。
  • -j: bz2 格式
  • -J: xz 格式。

指定文件:

  • -f file_name:指定压缩或解压的文件名字。

其它信息:

  • -t:查看打包文件里的文件名。
    1
    tar -t -f nginx-1.14.0.tar.gz
    
    • -v: 压缩和解压的时候显示正在处理的文件名。
    • -C:指定解压的目录。

      解压#

      tar -zvxf 123.tar.gz

      压缩(需要进入文件夹所在目录进行压缩,把 iamge 目录压缩到 123.tar.gz 文件中,解压之后目录结构从 /image 开始)#

      tar -zvcf 123.tar.gz image/

      解压到指定目录(解压之后目录结构 /dd/image)#

      tar -zvxf 123.tar.gz -C ./dd

      只解压指定文件#

      tar -jxv -f /root/etc.tar.bz2 etc/shadow