除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作。这是一些其他的 zip 选项以及它们如何提供帮助。
为了节省一些磁盘空间并将文件打包在一起进行归档,我们中的一些人已经在 Unix 和 Linux 系统上压缩文件数十年了。即使这样,并不是所有人都尝试过一些有趣的压缩工具的变体。因此,在本文中,我们将介绍标准的压缩和解压缩以及其他一些有趣的压缩选项。
基本的 zip 命令
首先,让我们看一下基本的 zip
命令。它使用了与 gzip
基本上相同的压缩算法,但是有一些重要的区别。一方面,gzip
命令仅用于压缩单个文件,而 zip
既可以压缩文件,也可以将多个文件结合在一起成为归档文件。另外,gzip
命令是“就地”压缩。换句话说,它会只留下一个压缩文件,而原始文件则没有了。 这是工作中的 gzip
示例:
$ gzip onefile
$ ls -l
-rw-rw-r-- 1 shs shs 10514 Jan 15 13:13 onefile.gz
而下面是 zip
。请注意,此命令要求为压缩存档提供名称,其中 gzip
(执行压缩操作后)仅使用原始文件名并添加 .gz
扩展名。
$ zip twofiles.zip file*
adding: file1 (deflated 82%)
adding: file2 (deflated 82%)
$ ls -l
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip
请注意,原始文件仍位于原处。
所节省的磁盘空间量(即获得的压缩程度)将取决于每个文件的内容。以下示例中的变化很大。
$ zip mybin.zip ~/bin/*
adding: bin/1 (deflated 26%)
adding: bin/append (deflated 64%)
adding: bin/BoD_meeting (deflated 18%)
adding: bin/cpuhog1 (deflated 14%)
adding: bin/cpuhog2 (stored 0%)
adding: bin/ff (deflated 32%)
adding: bin/file.0 (deflated 1%)
adding: bin/loop (deflated 14%)
adding: bin/notes (deflated 23%)
adding: bin/patterns (stored 0%)
adding: bin/runme (stored 0%)
adding: bin/tryme (deflated 13%)
adding: bin/tt (deflated 6%)
unzip 命令
unzip
命令将从一个 zip 文件中恢复内容,并且,如你所料,原来的 zip 文件还保留在那里,而类似的 gunzip
命令将仅保留未压缩的文件。
$ unzip twofiles.zip
Archive: twofiles.zip
inflating: file1
inflating: file2
$ ls -l
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip
zipcloak 命令
zipcloak
命令对一个 zip 文件进行加密,提示你输入两次密码(以确保你不会“胖手指”),然后将该文件原位存储。你可以想到,文件大小与原始文件会有所不同。
$ zipcloak twofiles.zip
Enter password:
Verify password:
encrypting: file1
encrypting: file2
$ ls -l
total 204
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21313 Jan 15 13:46 twofiles.zip comments
接下来,编辑你刚刚创建的文件,将注释插入到 (comment above this line)
行上方。然后使用像这样的 zipnote
命令添加注释:
$ zipnote -w twofiles.zip < comments
zipsplit 命令
当归档文件太大时,可以使用 zipsplit
命令将一个 zip 归档文件分解为多个 zip 归档文件,这样你就可以将其中某一个文件放到小型 U 盘中。最简单的方法似乎是为每个部分的压缩文件指定最大大小,此大小必须足够大以容纳最大的所包含的文件。
$ zipsplit -n 12000 twofiles.zip
2 zip files will be made (100% efficiency)
creating: twofile1.zip
creating: twofile2.zip
$ ls twofile*.zip
-rw-rw-r-- 1 shs shs 10697 Jan 15 14:52 twofile1.zip
-rw-rw-r-- 1 shs shs 10702 Jan 15 14:52 twofile2.zip
-rw-rw-r-- 1 shs shs 21377 Jan 15 14:27 twofiles.zip
请注意,提取的文件是如何依次命名为 twofile1
和 twofile2
的。
总结
zip
命令及其一些压缩工具变体,对如何生成和使用压缩文件归档提供了很多控制。
via: https://www.networkworld.com/article/3333640/linux/zipping-files-on-linux-the-many-variations-and-how-to-use-them.html
作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出