forked from study-area-cn/learn-linux-basic
完成gzip (#19)
This commit is contained in:
parent
d6dbcfa8f8
commit
a965413fc7
|
@ -0,0 +1,72 @@
|
|||
# GZip 与 XZ
|
||||
|
||||
上篇文章中,我们介绍了 `tar` 命令,它可以将多个文件打包成一个文件。但是,文件的总体积并没有改变。我们还提到了 `tar` 命令可以调用 `gzip` 和 `xz` 进一步压缩这个文件,使其占用更小的磁盘空间。现在我们就来看看 `gzip` 或 `xz` 命令本身吧。
|
||||
|
||||
> 这两个命令只能压缩单个文件,而不能压缩目录。
|
||||
|
||||
## GZip
|
||||
|
||||
> gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。gzip是一种在Linux系统中常见的命令行压缩工具。它使用DEFLATE压缩算法来减小文件的大小,使文件更易于存储和传输。
|
||||
>
|
||||
> 事实上,在许多软件中,包括在你浏览互联网的过程中,gzip已经被广泛使用。说不定,你现在正在阅读的网页就是gzip压缩过的。
|
||||
|
||||
使用 `gzip` 命令压缩的文件的后缀和前面提到的 `.tar.gz` 一样,都是 `.gz` 结尾的压缩文件。
|
||||
|
||||
下面是 `gzip` 命令的一些常用选项:
|
||||
|
||||
- `-c`:将压缩后的数据输出到终端(但是你看不懂的乱码),而不是覆盖原始文件。通常配合后面会讲到的 `>` 与 `|` 使用。
|
||||
- `-r`:递归压缩目录,包括子目录中的文件。注意:这里的递归是对每一个文件单独压缩,而不是对整个目录压缩成一个文件。
|
||||
- `-v`:显示压缩或解压缩的详细信息。
|
||||
- `-d`:解压缩文件。`gunzip` 命令等同于 `gzip -d`。
|
||||
- `-f`:强制压缩或解压缩,会覆盖原有的文件。
|
||||
- `-k`:不删除原始文件。
|
||||
- `-1` 到 `-9`:表示压缩等级,`-1` 表示最低压缩等级,速度快,`-9` 表示最高压缩等级,压缩率高。默认是 `-6`。
|
||||
|
||||
> `gzip` 命令默认会删除原始文件,所以使用 `-f` 选项可以强制保留原始文件。
|
||||
|
||||
例如,我们可以使用以下命令来压缩一个文件:
|
||||
|
||||
```bash
|
||||
gzip file.txt
|
||||
```
|
||||
|
||||
这将会生成一个名为 `file.txt.gz` 的压缩文件,原始的 `file.txt` 文件将被删除。
|
||||
|
||||
要解压缩一个 `gzip` 压缩的文件,可以使用下面的命令:
|
||||
|
||||
```bash
|
||||
gzip -d file.txt.gz
|
||||
```
|
||||
|
||||
> 之前学习的 `tar` 命令的 `-z` 选项就等价于先用 tar 命令打包,再执行一遍 gzip 命令。
|
||||
|
||||
## XZ
|
||||
|
||||
> xz是一种压缩文件格式,采用LZMA SDK压缩,目标文件较gzip压缩文件(.gz或)小30%,较.bz2小15%。
|
||||
>
|
||||
> 前段时间 XZ 命令被爆出存在后门,差一点就进入了正式的发行版,这次漏洞如果成功会危害到数以万计的 Linux 设备,但成功被开源社区的人发现 ~~(还是因为SSH程序启动慢了0.5秒)~~ ,这也侧面体现出了XZ应用的广泛与 Linux 社区支持的安全性。
|
||||
|
||||
使用 `xz` 命令压缩的文件的后缀和前面提到的 `.tar.xz` 一样,都是 `.xz` 结尾的压缩文件。
|
||||
|
||||
`xz` 的基本选项和 `gzip` 基本一致,但是提供了以下几个提高性能的额外选项:
|
||||
|
||||
- `-T <线程数>` 可以使用多线程进行压缩,提高压缩速度。
|
||||
- `-e` 可以使用更多的时间来提高压缩率
|
||||
|
||||
例如,我们可以使用以下命令来压缩一个文件:
|
||||
|
||||
```bash
|
||||
xz file.txt
|
||||
```
|
||||
|
||||
这将会生成一个名为 `file.txt.xz` 的压缩文件,原始的 `file.txt` 文件将被删除。
|
||||
|
||||
要解压缩一个 `xz` 压缩的文件,可以使用下面的命令:
|
||||
|
||||
```bash
|
||||
xz -d file.txt.xz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
> study-area-cn
|
|
@ -63,7 +63,7 @@ vboxadd:x:979:1::/var/run/vboxadd:/bin/false
|
|||
你可能会发现,有的用户的登录Shell是`/bin/nologin`或`/bin/false`,这代表这些用户不能登录。
|
||||
|
||||
> 你可以在终端里面执行`nologin`,会发现他会提示“该用户无法登录”,而`false`只是简单地返回一个错误返回值。
|
||||
|
||||
>
|
||||
> 有关Shell的知识我们在后面会系统介绍,简单来说,Shell就是一个让用户交互来执行操作的程序。
|
||||
|
||||
### root用户
|
||||
|
@ -249,16 +249,16 @@ drwxrwxr-x 3 hmtsai wheel 4096 7月26日 18:33 foo1
|
|||
八进制模式主要用于快速修改模式。比如,我想让一个文件的模式变成rwxrwxrwx,只需要`chmod 777 file`,而不是`chmod ugo+rwx file`。
|
||||
|
||||
> 为什么是4,2,1这三个数字呢?这是因为他们的组合能够不重,不信你试试看。
|
||||
|
||||
> 还有一个比较有意思的格式叫做“参考模式”,非常简单,格式就是`chmod [选项]... --reference=参考文件 文件...`。这个主要在懒得看模式的时候用(划掉)。因为比较简单,所以这里不再赘述。
|
||||
>
|
||||
> 还有一个比较有意思的格式叫做“参考模式”,非常简单,格式就是`chmod [选项]... --reference=参考文件 文件...`。~~这个主要在懒得看模式的时候用(划掉)~~。因为比较简单,所以这里不再赘述。
|
||||
|
||||
#### 参数
|
||||
|
||||
`chmod`的参数与`chown`比较类似,于是在此不再赘述,详情可以通过`chmod --help`了解。
|
||||
|
||||
> 几乎所有命令都有一个`--help`参数,可以通过这个参数大概了解这个命令的用法。
|
||||
|
||||
|
||||
# 课后任务
|
||||
## 课后任务
|
||||
|
||||
由于这篇的内容比较复杂,于是我们建议您完成以下任务进行练习:
|
||||
|
||||
|
|
|
@ -126,6 +126,7 @@ tar -zxvf archive.tar.gz -C ./archive
|
|||
上面的命令会将 `archive.tar.gz` 压缩包解压到当前目录下的 `archive` 文件夹中。
|
||||
|
||||
### 添加文件
|
||||
|
||||
如果我们需要向压缩包中添加文件,我们可以使用 `-r` 选项。
|
||||
|
||||
例如上文的
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
其实,Linux 的很多逻辑以及文件的组织结构都是与 Windows 大不相同的,接下来,我们就一起了解一下。
|
||||
|
||||
> 注意,以下操作,若无特殊说明,输入命令均在终端(Terminal)下操作,可以按下 C-M-T 呼出。
|
||||
|
||||
---
|
||||
> 本文中,快捷键使用以下格式表示:
|
||||
> `Ctrl`键使用`^`或者`C`表示,`Alt`键使用`M`表示,`Super`(即`Windows`键)使用`S`表示。
|
||||
> 它们的排列顺序是这样的:`C-M-S-<Other Key>`
|
||||
|
@ -132,7 +132,6 @@ rm -r <你想删除的文件夹>
|
|||
|
||||
> 如果你真的想尝试,那么请一定在虚拟机下!搞坏系统作者可不负责!
|
||||
|
||||
|
||||
### `nano`简单的文档编辑器
|
||||
|
||||
![Nano 的界面](./assets/2.5.1.png)
|
||||
|
|
Loading…
Reference in New Issue