Linux-压缩与打包

gzip与zcat

  • gzip可以说是Linux里应用最广的压缩命令了。gzip可以解开compress(Linux里一个很古老的压缩命令,但压缩比很差,现已基本废弃)、zip和gzip等软件所压缩的文件。gzip的压缩文件一般以.gz为后缀(非强制)。
  • 使用gzip压缩的文件也可以在Windows系统中被WinRAR软件解压缩。
  • 常用语法如下:
gzip [-cdtv#] 文件名

参数:

-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理,从而保留原文件(默认压缩后原文件就不存在了)

-d:表示解压缩

-t:用来检验压缩文件一致性

-v:用来显示原文件/压缩文件的压缩比等信息

-#:压缩等级,-1最快但压缩比最差,-9最慢但压缩比最好,默认为-6
  • 演示如下:


    Linux-压缩与打包_第1张图片
    gzip.png-57.9kB
  • 可以使用zcat命令来查看用gzip压缩的文件:

    Linux-压缩与打包_第2张图片
    zcat.png-33.7kB

bzip2与bzcat

  • bzip2可以提供比gzip更高的压缩比。用法也跟gzip差不多,具体如下:
bzip2 -[cdkzv#] 文件名

参数:

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

-d:解压缩

-k:保留原文件

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

-#:压缩比参数,-9最佳,-1最快

  • 使用bzcat可以查看用bzip2命令压缩的文件:


    Linux-压缩与打包_第3张图片
    bzip2.png-53.4kB

tar

  • 无论是gzip还是bzip2命令,都无法对目录压缩,最多也只能批量压缩目录下的文件,并产生多个压缩文件:


    Linux-压缩与打包_第4张图片
    cannot-dir.png-36.7kB
  • 如果想要将整个目录压缩成一个压缩文件,就需要借助于tar打包命令了:

tar [-j][-z] [cv] [-f 新建的文件名] filename
tar [-j][-z] [tv] [-f 新建的文件名]
tar [-j][-z] [xv] [-f 新建的文件名] [-C 目录]

参数:

-c:打包或压缩,可搭配-v来查看过程中被打包的文件名

-t:查看打包文件的内容含有哪些文件名

-x:解打包或解压缩,可搭配-C在特定目录解开

注意:-c -t -x 不可同时出现在一串命令中

-j:通过bzip2命令压缩/解压缩,此时压缩文件名最好为*.tar.bz2

-z:通过gzip命令压缩/解压缩,此时压缩文件名最好为*.tar.gz

-v:与-c、-x搭配会将正在处理的文件名显示出来,与-t搭配会列出文件的权限和属性的详细信息

-f:后面接压缩到哪个文件

-C:这个参数可用在解压缩时,来指定解压缩到哪个目录下面

其他参数:

-p:保留备份数据的原本权限和属性,常用于备份重要的配置文件

-P:保留绝对路径,即允许备份数据中含有根目录(不建议使用,有解压缩时覆盖导致原数据丢失的风险)

--exclude=filename通配符:在压缩时排除指定文件
  • 演示如下:


    Linux-压缩与打包_第5张图片
    tar.png-48.6kB
  • tar的其他常见用法还有:

1.仅解开单一文件

Linux-压缩与打包_第6张图片
tar-single.png-26.6kB

2.打包某目录而不含某些文件

Linux-压缩与打包_第7张图片
tar-exclude.png-29.7kB

3.仅打包比某个时刻还要新的文件

Linux-压缩与打包_第8张图片
tar-newer.png-34kB

END

参考资料:《鸟哥的Linux私房菜》

你可能感兴趣的:(Linux-压缩与打包)