Linux压缩文件的方法都有哪些?
04
2021-01
•归档 是将多个文件或文件夹组合成一个文件的过程。在这种情况下,生成的文件没有被压缩。
在 Linux 上有不少用于压缩文件的命令。最新最有效的一个方法是 xz,但是所有的方法都有节省磁盘空间和维护备份文件供以后使用的优点。
在这篇文章中,我们将比较这些压缩命令并指出显著的不同。
Vim编辑器
Vim 不仅仅是编辑器,它还包含其他许多强大的功能。下面的命令将直接显示压缩归档文件的内容:
$ vim test.tar.gz
" tar.vim version v29
" Browsing tarfile /home/alvin/test.tar.gz
" Select a file with cursor and press ENTER
test/imag.jpg
test/file.pdf
test/song.mp3
test/
不仅如此,使用 Vim 你甚至可以直接浏览归档文件,若其中有文本文件,你还可以直接 打开它,非常方便。
如果需要打开文本文件,只需使用箭头键将光标移到文件前面,然后按 ENTER 键即可打开。
tar
tar 命令不仅仅可以用于压缩/解压文件,还可以在不提取 tar 文件的情况下使用 tar -tf 命令查看压缩包内容。
$ tar -tf test.tar
test/
test/image.jpg
test/file.pdf
test/song.mp3
或者,使用 -v 选项查看归档文件的详细属性,例如权限、文件所有者、组、创建日期等。
$ tar -tvf test.tar
drwxr-xr-x alvin/users 0 2019-07-02 19:30 test/
-rw-r--r-- alvin/users 53632 2019-06-29 15:57 test/image.jpg
-rw-r--r-- alvin/users 156831 2019-06-04 12:37 test/file.pdf
-rw-r--r-- alvin/users 9702219 2019-04-25 20:35 test/song.mp3
rar命令
同样地,在不提取 rar 文件的情况下可以使用 rar v 命令查看压缩包内容。
$ rar v test.rar
RAR 5.60 Copyright (c) 1993-2019 Alexander Roshal 24 Jun 2019
Trial version Type 'rar -?' for help
Archive: test.rar
Details: RAR 5
Attributes Size Packed Ratio Date Time Checksum Name
----------- --------- -------- ----- ---------- ----- -------- ----
-rw-r--r-- 53632 52166 97% 2019-06-29 15:57 70260AC4 test/image.jpg
-rw-r--r-- 156831 139094 88% 2019-06-04 12:37 C66C545E test/file.pdf
-rw-r--r-- 9702219 9658527 99% 2019-04-25 20:35 DD875AC4 test/song.mp3
----------- --------- -------- ----- ---------- ----- -------- ----
9912682 9849787 99% 3
zip
在不提取zip文件的情况下可以使用zip-sf命令查看其内容。
zip -sf test.zip
Archive contains:
Life advices.jpg
Total 1 entries (597219 bytes)
gzip
gzip 命令非常容易使用。你只需要键入 gzip,紧随其后的是你想要压缩的文件名称。不像上述描述的命令,gzip 将“就地”加密文件。换句话说,原始文件将被加密文件替换。
unrar
对于上面的 rar 文件,你也可以使用带有 l 参数的 unrar 命令查看 rar 文件的内容。
$ unrar l test.rar
UNRAR 5.60 freeware Copyright (c) 1993-2019 Alexander Roshal
Archive: test.rar
Details: RAR 5
Attributes Size Date Time Name
----------- --------- ---------- ----- ----
-rw-r--r-- 53632 2019-06-29 15:57 test/image.jpg
-rw-r--r-- 156831 2019-06-04 12:37 test/file.pdf
-rw-r--r-- 9702219 2019-04-25 20:35 test/song.mp3
----------- --------- ---------- ----- ---9912682
zless
zless test.tar.gz
xz
xz 是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。
对于大文件来说,你可能会注意到 xz 将比其它的压缩命令花费更多的运行时间,但是压缩的结果却是非常令人赞叹的。
less
less 命令大家都可能有所了解了,它能以交互的方式查看文件内容。不仅如此,它还可以用来查看归档/压缩文件的内容:
less test.tar.gz
对比
大多数人都听说过“大小不是一切”。所以,让我们比较一下文件大小以及一些当你计划如何压缩文件时的问题。
下面显示的统计数据都与压缩单个文件相关,在上面显示的示例中使用 bigfile。这个文件是一个大的且相当随机的文本文件。压缩率在一定程度上取决于文件的内容。
(1) 大小减缩率
当比较时,上面显示的各种压缩会产生下面的结果。百分比表示压缩文件与原始文件的比较效果。
xz 命令获胜,最终只有压缩文件 13% 的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。
(2) 是否替换原始文件
bzip2、gzip 和 xz 命令都用压缩文件替换原始文件。tar 和 zip 命令不替换。
(3) 运行时间
xz 命令似乎比其它命令需要花费更多的时间来加密文件。对于 bigfile 来说,大概的时间是:
解压缩文件很可能比压缩时间要短得多。
(4) 文件权限
不管你对压缩文件设置什么权限,压缩文件的权限将基于你的 umask 设置,但 bzip2 除外,它保留了原始文件的权限。
(5) 与 Windows 的兼容性
zip 命令创建的文件可以在 Windows 系统以及 Linux 和其他 Unix 系统上使用(即解压),而无需安装其他工具,无论这些工具可能是可用还是不可用的。
解压缩文件
解压文件的命令与压缩文件的命令类似。在我们运行上述压缩命令后,这些命令用于解压缩 bigfile:
tar:tar xf bigfile.tgz
zip:unzip bigfile.zip
gzip:gunzip bigfile.gz
bzip2:bunzip2 bigfile.gz2
xz:xz -d bigfile.xz 或 unxz bigfile.xz
自己运行压缩对比
如果你想自己运行一些测试,抓取一个大的且可以替换的文件,并使用上面显示的每个命令来压缩它 —— 最好使用一个新的子目录。你可能需要先安装 xz,如果你想在测试中包含它的话。这个脚本可能更容易地进行压缩,但是可能需要花费几分钟完成。
2、
3、
扫描二维码