Alex_McAvoy

想要成为渔夫的猎手

Linux 文件压缩

【压缩扩展名】

在 Linux 环境中,支持的压缩命令很多,且不同命令所采用的压缩技术不同,彼此之间可能就无法相互压缩/解压缩文件

常见的压缩文件扩展名如下表:

扩展名 文件
*.Z compress 程序压缩的文件,目前已弃用
*.gz gzip 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.tar tar 程序打包的数据,未压缩
*.tar.gz tar 程序打包的数据,经过 gzip 压缩
*.tar.bz2 tar 程序打包的数据,经过 bzip2 压缩

【gzip 与 zcat】

gzip 命令是目前最常用的压缩命令,可以解开 compress、zip、gzip 等软件所压缩的文件,命令格式为:gzip [选项] 文件名

常用选项有:

  • -c:将压缩的数据输出到屏幕上,可通过数据流重定向处理
  • -d:解压缩
  • -t:检验压缩文件的一致性
  • -v:显示原文件/压缩文件的压缩比等信息
  • -#:压缩等级,-1 最快,但压缩比最差,-9 最慢,但压缩比最好,默认为 -6

当使用 gzip 压缩时,默认状态下原本的文件会被压缩为后缀为 .gz 的文件

cat 命令可以读取纯文本文件,而 zcat 命令可以读取纯文本被压缩后的压缩文件

【bzip2 与 bzcat】

gzip 是为了替代 compress 并提供更好的压缩比而创造的,bzip2 则是为了取代 gzip 而创造的,命令格式为:bzip2 [选项] 文件名

常用的选项有:

  • -c:将压缩过程中产生的数据输出到屏幕上
  • -d:解压缩
  • -k:保留原文件,不删除原始的数据文件
  • -z:压缩
  • -v:显示原文件/压缩文件的压缩比等信息
  • -#:压缩等级,-1 最快,但压缩比最差,-9 最慢,但压缩比最好,默认为 -6

gzip 命令和 zcat 命令一样,使用 bzcat 可以读取纯文本被 bzip2 压缩后的压缩文件

【tar 命令】

文件打包

使用 gzipzip2 只能对单个文件进行压缩,若是对目录进行操作,这两个命令会将目录内的所有文件分别进行压缩

若想将多个文件或目录压缩成一个文件,需要先使用 tar 命令进行打包,打包后再使用 gzipbzip2 进行压缩

打包与压缩

命令格式:tar [-z|-j] [cv] [-f 新建文件名] 要压缩的文件名或目录名 [--exclude=FILE]

  • -z:采用 gzip 进行压缩,此时新建文件名最好为 *.tar.gz 形式
  • -j:采用 bzip2 进行压缩,此时新建文件名最好为 *.tar.bz2 形式
  • -c:新建打包文件
  • -v:在压缩/解压缩过程中,将正在处理的文件名显示出来
  • —exclude=FILE:在打包某目录时,排除该目录中的 FILE 所指示的文件

一般来说,最简单的使用 tar 进行打包压缩的命令是:tar -jcv -f 新建文件名 要压缩的文件名或目录名

查看文件

要想查看使用 tar 打包并压缩后的文件中包含哪些文件,可以使用命令:tar [-z|-j] [tv] [-f 要查看的文件名]

  • -z:采用 gzip 进行压缩,此时新建文件名最好为 *.tar.gz 形式
  • -j:采用 bzip2 进行压缩,此时新建文件名最好为 *.tar.bz2 形式
  • -t:查看打包文件的内容所包含的文件名
  • -v:在压缩/解压缩过程中,将正在处理的文件名显示出来

一般来说,最简单的使用 tar 进行查看文件的命令是:tar -jtv -f 要查看的文件名

解压缩

命令格式:tar [-z|-j] [xv] [-f 要解压文件名] [-C 目录]

  • -z:采用 gzip 进行压缩,此时新建文件名最好为 *.tar.gz 形式
  • -j:采用 bzip2 进行压缩,此时新建文件名最好为 *.tar.bz2 形式
  • -x:解包或解压缩,可搭配 -C 在特定目录展开
  • -v:在压缩/解压缩过程中,将正在处理的文件名显示出来

一般来说,最简单的使用 tar 进行解压缩文件的命令是:tar -jxv -f 要解压文件名 —C 要解压的目录

感谢您对我的支持,让我继续努力分享有用的技术与知识点!