拉链
这个 拉链 程序既是压缩工具又是存档器。 该程序使用的文件格式对于 Windows 用户来说是熟悉的,因为它读取和写入 邮编 文件。 然而,在 Linux 中, GZIP 是主要的压缩程序 bzip2 紧随其后。
在最基本的用法中, 拉链 是这样调用的:
拉链 选项 zipfile 文件...
例如,要制作我们的 Playground 的 zip 存档,我们会这样做:
[我@linuxbox ~]$ zip -r playground.zip 游乐场
[我@linuxbox ~]$ zip -r playground.zip 游乐场
除非我们包括 -r 递归选项,只有 操场 目录(但不存储任何内容)。 虽然增加了扩展 邮编 是自动的,为了清楚起见,我们将包含文件扩展名。
在创建 zip 存档期间, 拉链 通常会显示一系列如下消息:
添加:playground/dir-020/file-Z(存储0%)添加:playground/dir-020/file-Y(存储0%)添加:playground/dir-020/file-X(存储0%)添加: playground/dir-087/(存储 0%)添加:playground/dir-087/file-S(存储 0%)
添加:playground/dir-020/file-Z(存储0%)添加:playground/dir-020/file-Y(存储0%)添加:playground/dir-020/file-X(存储0%)添加: playground/dir-087/(存储 0%)添加:playground/dir-087/file-S(存储 0%)
这些消息显示添加到存档中的每个文件的状态。 拉链 将使用两种存储方法之一将文件添加到存档中:要么“存储”未经压缩的文件,如下所示,要么“压缩”执行压缩的文件。 存储方法后显示的数值表示实现的压缩量。 由于我们的 Playground 仅包含空文件,因此不会对其内容进行压缩。
使用 拉开拉链 程序:
[我@linuxbox ~]$ 光盘
[我@linuxbox foo]$ 解压../playground.zip
[我@linuxbox ~]$ 光盘
[我@linuxbox foo]$ 解压../playground.zip
需要注意的一件事 拉链 (相对于 焦油) 是如果指定了现有存档,则更新而不是替换它。 这意味着保留现有存档,但添加新文件并替换匹配文件。
可以通过将文件指定为从 zip 存档中选择性地列出和提取文件
../游乐场.zip
../游乐场.zip
日期
----
日期
----
时间
----
时间
----
10-05-16 09:25
10-05-16 09:25
解压:
[我@linuxbox ~]$ unzip -l playground.zip 游乐场/dir-087/file-Z
[我@linuxbox ~]$ unzip -l playground.zip 游乐场/dir-087/file-Z
存档:
长度
--------
0
--------
0
姓名
----
游乐场/dir-087/file-Z
-------
1档
存档:
长度
--------
0
--------
0
[我@linuxbox ~]$ 光盘
[我@linuxbox foo]$ 解压 ../playground.zip playground/dir-087/file-Z
存档:../playground.zip
替换操场/dir-087/file-Z? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
提取:playground/dir-087/file-Z
[我@linuxbox ~]$ 光盘
[我@linuxbox foo]$ 解压 ../playground.zip playground/dir-087/file-Z
存档:../playground.zip
替换操场/dir-087/file-Z? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
提取:playground/dir-087/file-Z
使用 -l 选择原因 拉开拉链 只列出档案的内容而不提取文件。 如果没有指定文件, 拉开拉链 将列出存档中的所有文件。 这 -v 可以添加选项以增加列表的详细程度。 请注意,当存档提取与现有文件冲突时,会在替换文件之前提示用户。
喜欢 焦油, 拉链 可以使用标准输入和输出,尽管它的实现有点不太有用。 可以将文件名列表通过管道传输到 拉链 通过 -@ 选项:
[我@linuxbox foo]$ cd
[我@linuxbox ~]$ find playground -name "file-A" | zip [email protected]
[我@linuxbox foo]$ cd
[我@linuxbox ~]$ find playground -name "file-A" | zip [email protected]
在这里我们用 发现 生成与测试匹配的文件列表 -name "文件-A",然后将列表通过管道传输到 拉链, 这将创建存档 文件-A.zip 包含所选文件。
zip 也支持将其输出写入标准输出,但它的使用受到限制,因为很少有程序可以使用该输出。 不幸的是,解压缩程序不接受标准输入。 这可以防止 zip 和 unzip 一起使用来执行
表格网络文件复制之类的 焦油.
然而,zip 可以接受标准输入,因此它可以用于压缩其他程序的输出:
[我@linuxbox ~]$ ls -l /etc/ | 压缩 ls-etc.zip -
添加:-(放气 80%)
[我@linuxbox ~]$ ls -l /etc/ | 压缩 ls-etc.zip -
添加:-(放气 80%)
在这个例子中,我们通过管道传输输出 ls 成 拉链。 如 焦油, 拉链 将尾随的破折号解释为“对输入文件使用标准输入”。
这个 拉开拉链 程序允许将其输出发送到标准输出 -p (对于管道)选项已指定:
[我@linuxbox ~]$ unzip -p ls-etc.zip | 较少的
[我@linuxbox ~]$ unzip -p ls-etc.zip | 较少的
我们触及了一些基本的东西 拉链/拉开拉链 可以做。 它们都有很多选项来增加它们的灵活性,尽管有些是特定于其他系统的平台。 两者的手册页 拉链 和 拉开拉链 非常好,包含有用的示例。 但是,这些程序的主要用途是与 Windows 系统交换文件,而不是在 Linux 上执行压缩和归档,其中 焦油 和 GZIP 非常受欢迎。