jaywcjlove / jaywcjlove/reference

【备忘清单】 请求: zip

Open
#319 4 comments 0 reactions 1 assignee Claimed by @jaywcjlove View on GitHub
request 已有参考资料欢迎参与贡献 已添加 欢迎补充修正
Dominant language
Dockerfile
Stars
15.3k
Forks
2.2k
Avg merge
2h 17m
Merged PRs (30d)
4

Description

🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
注意:请求太多,参考【优先级】快速添加内容
🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧

#### 优先级

- [ ] 提交 PR 优先合并(优先处理)
- [ ] 提供可复制的[中文/英文]备忘清单资料,优先添加
- [ ] 大众化的内容(java/python),优先搬运(小众内容请提供资料)

#### 说明项目

zip 命令使用技巧

【请您在这里介绍一下工具或者语言,这很重要】

linux 命令

zip 备忘清单
===

这是 zip 常用命令的快速参考备忘单。

入门
----

### 介绍

在Linux平台上,`zip` 命令用于压缩文件。`zip` 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

#### 语法

```shell
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
```

### 选项
:- | -
:- | -
`-A` | 调整可执行的自动解压缩文件。
`-b` <工作目录> | 指定暂时存放文件的目录。
`-c` | 替每个被压缩的文件加上注释。
`-d` | 从压缩文件内删除指定的文件。
`-D` | 压缩文件内不建立目录名称。
`-f` | 更新现有的文件。
`-F` | 尝试修复已损坏的压缩文件。
`-g` | 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
`-h` | 在线帮助。
`-i` | <范本样式> 只压缩符合条件的文件。
`-j` | 只保存文件名称及其内容,而不存放任何目录名称。
`-J` | 删除压缩文件前面不必要的数据。
`-k` | 使用MS-DOS兼容格式的文件名称。
`-l` | 压缩文件时,把LF字符置换成LF+CR字符。
`-ll`| 压缩文件时,把LF+CR字符置换成LF字符。
`-L` | 显示版权信息。
`-m` | 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
`-n` | <字尾字符串> 不压缩具有特定字尾字符串的文件。
`-o` | 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
`-q` | 不显示指令执行过程。
`-r` | 递归处理,将指定目录下的所有文件和子目录一并处理。
`-S` | 包含系统和隐藏文件。
`-t` | <日期时间> 把压缩文件的日期设成指定的日期。
`-T` | 检查备份文件内的每个文件是否正确无误。
`-u` | 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
`-v` | 显示指令执行过程或显示版本信息。
`-V` | 保存VMS操作系统的文件属性。
`-w` | 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
`-x` | <范本样式> 压缩时排除符合条件的文件。
`-X` | 不保存额外的文件属性。
`-y` | 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
`-z` | 替压缩文件加上注释。
`-$` | 保存第一个被压缩文件所在磁盘的卷册名称。
`-<压缩效率>` |压缩效率是一个介于1-9的数值。

### 创建一个 zip 格式的压缩文件

在当前工作目录的 `/home/cyberpunk/testdir` 目录下创建一个名为 `archive.zip` 的 `zip` 压缩文件:

```shell
将 /home/cyberpunk/testdir 这个目录下所有文件和文件夹打包为当前目录下的 archive.

zip -q -r archive.zip /home/cyberpunk/testdir

如果在我们在 /home/cyberpunk/testdir 目录下,可以执行以下命令:

zip -q -r archive.zip *

从压缩文件 archive.zip 中删除文件 a.c

zip -dv archive.zip a.c

```

本例中使用的选项有:
:- | -
:- | -
`-r` | 递归处理,将指定目录下的所有文件和子目录一并处理。
`-q` | 不显示指令执行过程。
`-v` | 显示指令执行过程或显示版本信息。
`-d` | 从压缩文件内删除指定的文件。

### 创建压缩后的 `tar.gz` 存档文件

要创建一个压缩的 `gzip` 归档文件,我们需要使用选项 `z` 。

```shell
tar cvzf compressedArchive.tar.gz /home/cyberpunk/testdir

/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.jpg
/home/cyberpunk/testdir/file3.png
```

本例中使用的选项有:
:- | -
:- | -
`-c` | 建立新的备份文件
`-v` | 显示指令执行过程
`-f` | 指定归档文件的文件名
`-z` | 通过 `gzip` 指令处理备份文件

### 压缩效率测下及选择

选项 -0 store only, -9 compress better, 默认是使用-6进行压缩, 以一个17G的目录testdir为例:

zip -6(default) 耗时 `8m46`,压缩后包大小 `4.4G`, 解压此包耗时 `2m6.249s` 。

zip -9 耗时 `20m16.389s`,压缩后包大小 `4.3G`, 解压此包耗时 `1m56.446s` 。

zip -1 耗时 `4m23.021s`,压缩后包大小 `4.6G`, 解压此包耗时 `1m55.138s` 。

zip -0 耗时 `1m9.021s`,压缩后包大小 `17G`, 解压此包耗时 `1m44.762s` 。

结论:使用 `-1` 时压缩效率和时间是比较好的选择。

#### 提供参考资料地址

提供更多参考资料有助于我们整理成备忘清单(速查表)

- 提供参考地址 https://jaywcjlove.github.io/reference
- 提供官网地址 https://jaywcjlove.github.io/reference

_⚠️ 注意: 随着内容越来越多,可能甚至找不到这个工具或者语言的官网,请您在这里提供以便大家共同参与贡献内容_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.