Linux系统用户可以根据自己的需求选择合适的压缩工具来进行文件压缩和解压操作。Linux系统中常用的压缩软件都有相应的命令行工具,并且可以通过软件包管理器进行安装。主要有gzip、bzip2、zip、tar、7z。
gzip:gzip是一个广泛使用的开源压缩工具,它通常用于将单个文件进行压缩,生成以".gz"为后缀的压缩文件。gzip的压缩率较高,但无法压缩目录。
bzip2:与gzip类似,bzip2也是一种常见的压缩工具,它能够提供更高的压缩比和更长的压缩时间。bzip2生成的压缩文件通常以".bz2"为后缀。
zip:zip是一个常用的跨平台压缩工具,它可以对文件和目录进行压缩,并支持密码保护和分卷压缩。在Linux系统中,通常需要额外安装zip软件包。
tar:tar并不是一个压缩工具,而是一个归档工具,用于将多个文件或目录打包成一个文件。通常会搭配其他压缩工具(如gzip或bzip2)来对打包后的文件进行压缩,生成以".tar.gz"或".tar.bz2"为后缀的压缩文件。
7z:7z是一种高效的压缩工具,能够生成以".7z"为后缀的压缩文件,支持多种压缩算法和加密方式。
作者:炭烤毛蛋 ,点击博主了解更多。
提示:压缩率直接压缩时间,而压缩格式决定压缩率,按照实际场景选取合适压缩格式。
tar 是一个用于创建和提取压缩包的命令。
创建 tar 压缩包:
tar -cvf archive.tar /path/to/directory
-c
:表示创建新的压缩包。-v
:显示归档过程中处理的文件。-f
:指定压缩包的名称。提取 tar 压缩包:
tar -xvf archive.tar
-x
:从压缩包中提取文件。-v
:显示提取过程中处理的文件。-f
:指定压缩包的名称。压缩成.tar.bz2格式:
tar -cvjf archive.tar.bz2 /path/to/directory_or_file
-c:创建新的压缩文件
-v:显示详细输出
-j:使用bzip2算法进行压缩
-f:指定压缩文件的名称
从.tar.bz2文件中提取:
tar -xvjf file.tar.bz2 -C /path/to/destination
-x:解压文件
-v:显示详细输出
-j:使用bzip2算法解压缩
-f:指定要解压的文件
压缩并创建 tar.gz 文件:
tar -czvf archive.tar.gz /path/to/directory
-z
:使用 gzip 压缩/解压文件。提取 tar.gz 文件:
tar -xzvf archive.tar.gz
-z
:使用 gzip 解压文件。提示:想要将文件提取到指定目录,可以使用-C选项:
tar -xvjf archive.tar.bz2 -C /path/to/destination
gzip 是一种常用的文件压缩工具,它通常与 tar 命令结合使用。
压缩文件:
gzip filename
解压缩文件:
gzip -d filename.gz
bzip2 是一种高效的文件压缩工具,压缩后的文件通常比 gzip 更小。
压缩文件:
bzip2 filename
解压缩文件:
bzip2 -d filename.bz2
zip 是一种常见的跨平台压缩和归档格式,可以在 Windows、Linux 和 macOS 中使用。
创建 zip 文件:
zip archive.zip file1 file2 file3
file1、file2和file3压缩成一个名为archive.zip的压缩文件。
zip -r archive.zip directory
这将会将整个directory目录以及其中的所有文件和子目录压缩成一个名为archive.zip的压缩文件。
解压 zip 文件:
unzip archive.zip
提取压缩文件:
unzip archive.zip
这将会解压缩名为archive.zip的文件,并还原成原始的未压缩文件或目录。
你也可以使用-d
选项来将文件提取到指定目录:
unzip archive.zip -d /path/to/destination
这将会把压缩文件中的内容提取到/path/to/destination
目录。
rar 是一种常用的压缩和归档格式,常用于 Windows 系统。
创建 rar 文件:
rar a archive.rar file1 file2 file3
这条命令将会把file1、file2和file3压缩成一个名为archive.rar的压缩文件。
想要设置压缩级别,最高压缩级别(5),可以使用-m选项:
rar a -m5 archive.rar file1 file2 file3
解压 rar 文件:
unrar x archive.rar
-e选项来将文件提取到指定目录:
rar e archive.rar /path/to/destination
将会把压缩文件中的内容提取到/path/to/destination目录。
7z 是一种高压缩比的文件压缩工具,支持多种压缩和归档格式。在Linux系统中,你可以使用7z命令来进行文件的压缩和提取操作。
压缩文件:
7z a archive.7z file1 file2 file3
这条命令将会把file1、file2和file3压缩成一个名为archive.7z的压缩文件。
如果你想要设置压缩级别,可以使用-mx
选项:
7z a -mx=9 archive.7z file1 file2 file3
这将会以最高压缩级别(9)来压缩文件。
提取压缩文件:
7z x archive.7z
这会解压缩名为archive.7z的文件,并还原成原始的未压缩文件或目录。
你也可以使用-o
选项来将文件提取到指定目录:
7z x archive.7z -o/path/to/destination
这将会把压缩文件中的内容提取到/path/to/destination
目录。
** 7z 压缩参数 **
-a 添加文件/文件夹到压缩包
-t 指定压缩格式,如-t7z表示指定压缩格式为7z
-o 是指定解压到的目录
-r 递归所有的子文件夹,这个选项通常可以忽略
-x 解压文件
通过这些命令,你可以在Linux系统中使用7z来进行文件的压缩和提取操作。
压缩率和压缩时间是评估不同压缩算法和工具性能的重要指标。
压缩率:压缩率指的是在压缩文件后,文件大小相对于原始文件大小的比率。更高的压缩率意味着压缩效果更好,文件变得更小,节省了存储空间。压缩率可以通过计算压缩后文件大小与原始文件大小的比值来得到,常用百分比表示。
压缩时间:压缩时间指的是执行压缩操作所花费的时间。较短的压缩时间意味着压缩速度更快,适用于需要频繁进行大量文件压缩的场景。然而,有些情况下压缩时间并不是主要关注点,比如在后台进行压缩操作时,压缩时间可以放宽。
各种压缩格式,压缩耗时。
~$ time tar cf test.tar test
real 0m0.289s
user 0m0.010s
sys 0m0.278s
~$ time tar cjf test.tar.bz2 test
real 0m56.559s
user 0m55.241s
sys 0m3.380s
~$ time tar czf test.tar.gz test/
real 0m18.175s
user 0m17.855s
sys 0m1.589s
~$ time zip -r test.zip test
real 0m11.198s
user 0m10.851s
sys 0m0.270s
~$ time rar a test.rar test
real 0m19.324s
user 1m10.378s
sys 0m26.131s
~$ time 7z a test.7z test
real 0m11.704s
user 1m30.378s
sys 0m2.963s
压缩耗时:.tar.bz2 > .rar > .tar.gz > .7z > .zip > .tar。
查看原始文件或目录大小
~$ du -h --max-depth=0 test
402M test
查看压缩后文件大小
~$ ls test.* -lh
-rw-r--r-- 1 ice ice 188M Nov 19 14:46 test.7z
-rw-r--r-- 1 ice ice 199M Nov 19 14:45 test.rar
-rw-r--r-- 1 ice ice 388M Nov 19 14:29 test.tar
-rw-r--r-- 1 ice ice 198M Nov 19 14:31 test.tar.bz2
-rw-r--r-- 1 ice ice 199M Nov 19 14:28 test.tar.gz
-rw-r--r-- 1 ice ice 203M Nov 19 14:44 test.zip
压缩率:.7z > .tar.bz2 > .rar > tar.gz > zip > tar。
汇总以上测试结果到如下表中:
压缩格式 | 压缩耗时 | 压缩后大小 | 压缩率百分比 |
---|---|---|---|
.tar | 0.289s | 388M | 96.5 |
.tar.bz2 | 56.559s | 198M | 49.3 |
.tar.tgz | 18.175s | 199M | 49.5 |
.zip | 11.198s | 203M | 40.5 |
.rar | 19.324s | 199M | 49.5 |
.7z | 11.704s | 188M | 46.8 |
在实际应用中,选择合适的压缩算法和工具需要综合考虑压缩率和压缩时间。某些情况下,需要更高的压缩率来节省存储空间,而在另一些情况下,更看重压缩时间以提升效率。根据具体需求,可以权衡两者之间的关系,选择最适合的压缩算法和工具。
不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。