最新消息:马哥2016Linux运维实战班全新上线,详情可了解 http://www.magedu.com/

压缩和解压缩

运维专栏 In summer 25浏览 0评论

今天我们所讲一些压缩以及解压缩的内容,可以方便我们去传输一些数据较大的文件,以及可以降低我们的内存使用率, 节省空间。我们常用的工具对单个文件进行压缩有4种,对于多个文件进行打包压缩有2种。

1、compress(单个文件压缩)

    压缩后的文件后缀名都是.Z结尾

    compress file1     对单个文件压缩

       -d       解压缩文件(uncompress或者zcat file.Z > file也可以解压缩)

       -c > file1 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。

     

    -f       默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1

    -v 显示详细过程,可以查看压缩进程

     

    compress 不经常用,压缩比相对于其它比较低。并且compress -d 不能补齐

2、gzip (单个文件压缩)

    压缩的文件后缀为  .gz

    gzip file  压缩file单个文件

    -d    解压文件 (gunzip或者zcat file.gz > file都可以解压缩)

    -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。

    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1

    -v 显示详细过程,可以查看压缩进程

    -# 数字越大,压缩比越高,速度越慢,文件越小。

    -1 等于 – -fast

    -2,3,4,5,6(默认),7,8

    -9 等于 – -best

    

    这个gzip 相对于compress较为常用,这个对于-d 后面就能补全,大家可以试试。

3、bzip2(单个文件压缩)

    压缩的文件后缀名都为 .bz2

    -d 解压文件 (bunzip或者bzcat file.bz2 > file)

    -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。

    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1

    -v 显示详细过程,可以查看压缩进程

    -k 保留原文件

    

    -# 数字越大,压缩比越高,速度越慢,文件越小。

        -1 等于 – -fast

        -2,3,4,5,6,7,8

        -9 等于 – -best(默认)

    

    相对于前面两个这个多个-k,可以直接保留原文件了。

4、xz(单个文件压缩)

    压缩的文件后缀名都为 .xz

    -d 解压文件 (xzcat)

    -k 保留原文件 权限不变

    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1

    -v 显示详细过程,可以查看压缩进程

    

    -# 数字越大,压缩比越高,速度越慢,文件越小。

        -0 等于 – -fast

        -1,2,3,4,5,6(默认),7,8

        -9 等于 – -best

    

xz 压缩也是多个-k选项,能直接保留原文件,相对于bzip2 多个-0 ,这个也经常用。我们可以在centos官方压缩包里面看到大多数都是xz   bz2   gz

5、zip (打包压缩)

    压缩生成的文件后缀名都是.zip

    zip -r 压缩后新名字 (文件或目录)

    unzip解压缩

    |zip 将生成的文件名 –

    可以将管道前的输出结果转为文件并压缩。通过此方式压缩的文件只能使用“unzip -p 压缩包 > 新文件 ”来解压缩

    如果只输入zip -p 就是预览压缩包里面的内容

    

6、tar(打包压缩)*****最为重要

        -cf 创建的包名字  原文件(可以指定多个)

        -tf 包名字   显示包中的文件名

        -tvf 详细显示包中的文件名

        -rf 包名字 新文件名(可以指定多个)      添加文件进入以生成的包里面

        – -delete -f 包名字 被删除的文件名(可以指定多个)

        -xf 包名字 解出所有的文件到当前目录

            -xf  包名字 文件  解所指定的文件到当前目录

            -xf  包名字 -C 指定目录    解锁指定的压缩包到指定目录

    

    -v 显示过程    

    -Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩

    -jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩

    -zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩

    

    我们可以根据压缩后的大小能看出来压缩方式不一样。

    分割文件与合并文件

    split –b Size –d tar-file-name prefix-name 将tar包分隔为多个文件 (分割文件)

    

    cat 被分隔出的多个文件名 > 单个文件名   (合并文件)

    

    掌握以上的六种技能,就可以对一些分散的文件集中化处理,希望能对大家有帮助。

转载请注明:linux运维部落 » 压缩和解压缩

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址