Linux下的文件压缩和打包

Posted 绮梦小煊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下的文件压缩和打包相关的知识,希望对你有一定的参考价值。

Linux 上的压缩包文件格式,除了 Windows 最常见的*.zip、*.rar、.7z后缀的压缩文件,还有 .gz、.xz、.bz2、.tar、.tar.gz、.tar.xz、tar.bz2

文件后缀名                               说明

*.zip                       zip程序打包压缩的文件

*.rar                          rar程序压缩的文件

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

*.gz                     gzip程序 (GNU zip) 压缩的文件

*.xz                          xz程序压缩的文件

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

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

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

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

*.tar.7z             tar打包,7z程序压缩的文件

  • compress

使用compress压缩源文件会被覆盖

          文件后缀: .Z

         -c 将结果打印到屏幕上,压缩文件显示的则是乱码。

 配合重定向,不会覆盖原文件,但权限会变,重定向的本质是创建新文件,新文件的权限与umask值有关

         -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
         -v 显示详细过程。

如下图

 

              解压缩    -d 

 

                              uncompress

                               zcat X.Z > X   将文件解压到当前目录下,并保留源文件

 

  • .zip

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

解压:

pwd4文件与pwd文件大小相等,证实此命令。


          unzip -p 预览解压缩后的内容到屏幕,可以配置重定向将结果保存到指定文件,权限会发生变化。

          zip -r 新文件名.zip 被压缩打包的文件(可以为多个文件)

  

  • gzip
    后缀:.gz

    -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
    -v 显示详细过程。
    -# 数字越大,压缩比越高,速度越慢,文件越小。


-1 等于 --fast

-2,3,4,5,6(default),7,8
-9 等于 --best

 

           解压缩 

                     -d 
                       gunzip
                       zcat X.gz > X

  • bzip2
    .bz2

    -k 保留原文件
    -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
    -v 显示详细过程。
    -# 数字越大,压缩比越高,速度越慢,文件越小。
    -1 等于 --fast
    -2,3,4,5,6,7,8
    -9 等于 --best (default)

            解压缩    

                      -d 
                        bunzip
                        bzcat X.bz2 > X

  • xz
    .xz

    -k 保留原文件
    -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
    -v 显示详细过程。
    -# 数字越大,压缩比越高,速度越慢,文件越小。
    -0 等于 --fast
    -1 -2,3,4,5,6(default),7,8
    -9 等于 --best

                  解压缩

                          -d 
                           xzcat 

与gzip命令类似。

  • tar

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

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

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

 

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

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

将源文件删除后又从包中解出来。

         -xf 包名字 文件名 解所指定的文件到当前目录
         -C 解包到指定目录
         -v 显示过程
         -Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩
         -jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩
         -zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩

         -T 指定个列表,包含需要被打包的文件,以换行符为间隔
         -X 指定个排除列表,以换行符为间隔

 本文简单的列举了Linux中的一些压缩工具及其应用。

 

以上是关于Linux下的文件压缩和打包的主要内容,如果未能解决你的问题,请参考以下文章

Linux下的文件压缩和打包

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩

Linux下的常见压缩解压缩命令

Linux下的打包与压缩和tar命令!

Linux打包压缩

Linux的打包压缩查看压缩文件解压解包操作开关机和重启