Bootstrap

Linux中的打包和文件压缩

文件打包和文件压缩是linux中常用的数据传递方式,可以保证数据的整体性;本文主要介绍工作中常用的几种打包和压缩方式

一、应用

1.1 linux 和 windows 数据传递

有时我们会将linux中的数据拷贝到windows上进行查看,常用的文件压缩格式有zip和rar

zip文件压缩格式

压缩命令说明
zip a.zip ./*将当前目录下的文件压缩为a.zip,不包括文件夹中的文件
zip -r a.zip ./*将当前目录下的文件递归压缩为a.zip,包括文件夹中的文件
unzip a.zip解压文件到当前文件夹
unzip ./a.zip -d ./folder将文件解压到./folder文件夹中

rar文件压缩格式

压缩命令说明
rar a t.rar ./*将当前目录下的文件压缩为a.zip,包括文件夹中的文件
rar a -r t.rar ./*将当前目录下的文件递归压缩为a.zip,包括文件夹中的文件
unrar e t.rar解压文件到当前文件夹,只是解压文件,但是包括文件夹中的文件
unrar x t.rar解压文件到当前文件夹,只是解压文件和文件夹
unrar e ./t.rar -d ./folder将文件解压到./folder文件夹中
unrar x ./t.rar -d ./folder将文件解压到./folder文件夹中,包括文件夹
unrar e ./t.zip -o ./folder将文件解压到./folder文件夹中
unrar x ./t.rar -o ./folder将文件解压到./folder文件夹中,包括文件夹

1.2 linux 中的数据传递

tar && gz
通过tar对文件进行打包,再通过gz对文件进行压缩

压缩文件类型说明
tar -cvf t.tar ./*将当前目录下所有的文件和文件夹打包成为t.tar
tar -xvf t.tar将t.tar解压到当前目录
tar -xvf t.tar -C /home/user/将t.tar解压到指定目录

打包的同时压缩

压缩文件类型说明
tar -zcvf t.tar.gz ./*将当前目录下所有的文件和文件夹打包成为t.tar.gz
tar -jcvf t.tar.bz2 ./*将当前目录下所有的文件和文件夹打包成为t.tar.bz2
tar -zxvf t.tar.gz将t.tar.gz解压到当前目录
tar -zxvf t.tar.gz -C /home/user/将t.tar.gz解压到指定目录

压缩参数解释:

-c:新建一个压缩文件
-z:使用gzip算法压缩为.gz文件
-v:显示压缩过程
-f:指定压缩文件名

解压参数解释:

-x:解包/解压一个压缩文件
-z:解压使用gzip算法压缩的.gz文件
-v:显示解压过程
-f:指定压缩文件名

循环解压tar.gz文件

for file in *.tar.gz; do tar -zxvf "$file"; done
root@**:**# ls
md.tar.gz  txt.tar.gz
root@**:**# ls for file in *.tar.gz; do tar -zxvf "$file"; done
./1.md
./2.md
./d.md
./a.txt
./b.txt

二、说明以及优缺点介绍

2.1 gz

.gz 是一种在 Linux 系统中常见的文件压缩类型。它通过 GNU 压缩工具 Gzip 进行压缩生成,其底层使用的是 DEFLATE 算法。.gz 文件格式是一种有损压缩格式,使用起来简单方便,被广泛应用于互联网传输和存储的文件压缩中。下面是一些 .gz 文件压缩的特性:

  • 压缩率高:.gz 文件压缩方式采用 DEFLATE 算法 和 Lempel-Ziv 算法,因此压缩率比较高,可以有效减少存储空间。

  • 压缩速度快:.gz 文件是基于 DEFLATE 算法实现的,速度较快,压缩较大文件时也不会太慢。

  • 支持单个文件压缩:.gz 文件可以将单个文件压缩成一个 .gz 压缩包,方便传输和共享。

  • 不支持多文件压缩:.gz 文件不支持多文件压缩,需要先将要压缩的文件打包成 tar 包后,再将 tar 包压缩成 .tar.gz 文件。

  • 压缩后生成 .gz 文件:.gz 文件经过压缩后,文件名的扩展名变为 .gz,例如 info.txt 文件压缩后,文件名为 info.txt.gz。

总之,.gz 文件压缩类型是一个常见的 Linux 文件压缩类型之一,具有压缩率高、压缩速度快等优点,在文件传输和存储中使用广泛。

2.2 zip

在 Linux 系统中,ZIP 是一种常见的文件压缩类型,相比于 tar,gzip 和 bzip2,ZIP 压缩格式是一个跨平台的压缩格式,经常用于在 windows 和 Linux 系统之间共享文件。下面是一些 ZIP 文件压缩类型的特性:

  • 压缩率中等:相比于 gzip 和 bzip2,ZIP 的压缩率通常处于中等水平。
  • 可以压缩多个文件:ZIP 支持将多个文件压缩成一个 ZIP 压缩包。
  • 支持文件加密:ZIP 文件可以加密,保护文件隐私性。
  • 使用方便:ZIP 压缩工具可以在 Linux 和 Windows 系统上使用,使用起来非常方便。
  • 压缩速度较快:ZIP 压缩速度通常比 bzip2 慢,比 gzip 快。

总之,ZIP 是一种常见的跨平台文件压缩类型,在许多场景下都非常方便。ZIP 可以有效地将多个文件压缩到一个文件中,也可以添加或删除单个文件,压缩率中等,处理速度较快,可通过密码保护您的文件。

在使用 zip 命令时,可以使用以下选项来实现不同的功能:

-r:将目录递归至压缩文件;
-q:执行操作时不显示任何输出信息;
-m:将源文件移动到压缩的文件中;
-u:仅压缩源文件中原本不存在的文件;
-j:仅存储文件名称和内容,不压缩目录结构信息;
-1 ~ -9:指定压缩级别,值越大表示压缩效率越高,压缩时间越长;

2.3 rar

在 Linux 系统中,RAR 是一种常用的归档压缩格式,可以在 Linux、Windows、macOS 等平台上使用。RAR 压缩格式在 Linux 中不像其他 zip、tar、gzip、bzip2 等压缩格式那么常用,但是在 Windows 中 RAR 压缩格式非常常见。

RAR 归档压缩格式的特性包括:

  1. 高压缩率:RAR 格式拥有比较高的压缩比例,能让你在很少的空间内存储更多的文件。

  2. 分卷压缩:RAR 可以将一个大文件分成多个小文件,方便传播。

  3. 支持加密:通过加密,可以更好地保护文件隐私性。

  4. 自解压:允许你创建自解压包,这种压缩包不需要任何压缩软件就可以直接运行解压缩。

在 Linux 中,你可以通过 RAR 压缩软件,如 unrar 和 rar,来创建、提取和管理 RAR 压缩文件。在基本操作方面,RAR 压缩命令和 gzip、zip 等格式的命令类似,包括创建压缩文件、解压缩文件等。

2.4 tar

在 Linux 中,tar 命令是一个用于打包和归档的命令,可以将一个或多个文件或目录打包成一个 tar 归档文件,可以使用 -z 选项将其压缩成 gzip 格式文件或 -j 选项将其压缩成 bzip2 格式文件。

tar 的基本语法如下:

tar [选项] 文件名.tar [要被打包的文件]

其中,选项可以为:

  • -c:创建一个新的 tar 归档文件。
  • -x:从 tar 归档文件中提取文件。
  • -v:显示正在进行的操作。
  • -f:指定归档文件的名称。
  • -z:使用 gzip 格式进行压缩。
  • -j:使用 bzip2 格式进行压缩。
  • -t:列出 tar 归档文件的内容。
  • -r:向 tar 归档文件中添加文件。
  • -u:更新已有的 tar 归档文件。
  • -P:保留完整的文件路径。
;