文件打包和文件压缩是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 归档压缩格式的特性包括:
-
高压缩率:RAR 格式拥有比较高的压缩比例,能让你在很少的空间内存储更多的文件。
-
分卷压缩:RAR 可以将一个大文件分成多个小文件,方便传播。
-
支持加密:通过加密,可以更好地保护文件隐私性。
-
自解压:允许你创建自解压包,这种压缩包不需要任何压缩软件就可以直接运行解压缩。
在 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:保留完整的文件路径。