gzip,bzip2,xz,tar-读书笔记(九)

gzip 将文件进行压缩

在Linux系统中,gzip 是一个压缩和解压文件的命令工具。它使用LZ77压缩算法及霍夫曼编码(Huffman Coding)来压缩文件,通常用来减少文件的大小,以节约磁盘空间或减少网络传输的时间。

gzip 命令的常见参数及其作用如下:

  • -c:将压缩的数据输出到标准输出,而不是写入文件。
  • -d 或 --decompress:解压缩文件。
  • -r 或 --recursive:递归地压缩或解压缩目录及其中所有文件。
  • -l 或 --list:列出压缩文件的详细信息,而不解压。
  • -f 或 --force:强制覆盖已存在的文件。
  • -t 或 --test:测试压缩文件是否完整。
  • -v 或 --verbose:在压缩或解压缩时显示详细的过程信息。
  • -S 或 --suffix:指定压缩后文件的后缀,默认是 .gz。

举例:

  1. 解压缩文件:
gzip -dvf myfile.txt.gz

这个命令会解压缩 myfile.txt.gz 并显示解压缩过程中的信息。

需要注意的是,gzip 只能压缩文件,而不能压缩目录。如果需要压缩目录,可以使用 tar 命令与 gzip 结合来实现,即 tar 命令用来打包目录,然后 gzip 用来压缩打包后的文件。

  • 使用 gzip -d 1.txt 进行解压缩文件
  • gzip -vf 1.txt 进行压缩文件并进行展示过程覆盖原文件
  • gzip -l 1.txt.gz 查看压缩文件中的文件列表
  • gzip -S .zip 1.txt 将文件压缩成zip格式的压缩文件

那个 zcat/zmore/zless 则可以对应于cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!由于 gzip 这个压缩指令主要想要用来取代compress 的,所以不但 compress 的压缩文件可以使用gzip 来解开,同时 zcat 这个指令可以同时读取compress 与 gzip 的压缩文件呦!

此外,使用 gzip 压缩的文件在 Windows 系统中,竟然可以被 WinRAR/7zip 这个软件解压缩呢


bzip2 将文件进行压缩

在Linux系统中,bzip2 是一个用于数据压缩的工具,它使用了Burrows-Wheeler算法。这个命令通常用来压缩单个文件,或者压缩 tar 归档文件(在这种情况下,通常使用 tar -czv 命令)。压缩后的文件通常具有 .bz2 扩展名。

命令作用:

  • bzip2: 压缩工具,用来压缩文件。
  • bunzip2: bzip2 的解压缩工具,用来解压缩 .bz2 文件。

参数使用:

以下是一些常用的 bzip2 参数:

  • -z 或 --compress:压缩文件。
  • -d 或 --decompress:解压缩文件。
  • -c 或 --stdout:将压缩或解压缩的数据输出到标准输出(通常是终端或命令行界面)。
  • -k 或 --keep:在解压缩时不删除源文件。
  • -f 或 --force:强制压缩或解压缩文件,即使文件不存在或不具有读取权限。
  • -t 或 --test:测试压缩文件的完整性。

使用示例:

  1. 压缩文件

要压缩文件 example.txt,可以使用以下命令:

bzip2 example.txt

这将创建一个名为 example.txt.bz2 的压缩文件,原始文件 example.txt 将会被压缩。

  1. 解压缩文件

要解压缩文件 example.txt.bz2,可以使用以下命令:

bunzip2 example.txt.bz2

这将恢复原始文件 example.txt,而 example.txt.bz2 将被删除(除非使用了 -k 选项)。

请注意,这里提供的是 bzip2 命令的基本使用情况。在实际使用中,可能还需要根据具体情况进行参数的组合和调整。

看上面的范例,你会发现到 bzip2 连选项与参数都跟 gzip 一模一样!只是扩展名由 .gz 变成 .bz2 而已!!你也可以发现到 bzip2 的压缩率确实比 gzip 要好些!不过,对于大容量文件来说,bzip2 压缩时间会花比较久喔!至少比 gzip 要久的多!这没办法~要有更多可用容量,就得要花费相对应的时间!还 OK 啊!


xz 将文件进行压缩

在Linux系统中,xz 是一种数据压缩工具,它使用LZMA算法来压缩文件。xz 命令可以用来压缩文件(xz),解压缩文件(unxz 或 xz -d),或者查看压缩文件的压缩率(xz -l)。

下面是 xz 命令的一些常用参数及其作用:

  • -z 或 --compress:压缩文件。
  • -d 或 --decompress:解压缩文件。
  • -c 或 --stdout:将输出重定向到标准输出,通常与解压缩时使用。
  • -k 或 --keep:压缩或解压缩后保留原始文件。
  • -f 或 --force:强制覆盖已存在的目标文件。
  • -t 或 --test:测试文件是否可以被压缩,但不进行压缩。
  • -0 到 -9:设置压缩的强度,数字越大,压缩率越高,但CPU消耗也越大。

例子

  1. 压缩文件

假设您想压缩一个名为 example.txt 的文件,您可以使用以下命令:

xz example.txt

这将创建一个名为 example.txt.xz 的压缩文件,原始的 example.txt 文件会保持不变。

  1. 解压缩文件

如果您有一个名为 example.txt.xz 的压缩文件,并想要解压缩它,可以使用以下命令:

xz -d example.txt.xz

或者:

unxz example.txt.xz

这将恢复原始文件 example.txt。

虽然 xz 这个压缩比真的好太多太多了!他可以将 gzip 压缩比(压缩后/压缩前)的 21% 更进一步优化到 15% 耶!差非常非常多!不过, xz 最大的问题是...时间花太久了!如果你曾经使用过 xz 的话,应该会有发现,他的运算时间真的比 gzip 久很多喔!

gzip,dzip2,xz的差异

time [gzip|bzip2|xz] -c services > services.[gz|bz2|xz] ”去执行运算结果,结果发现这三个指令的执行时间依序是: 0.019s, 0.042s, 0.261s,看最后一个数字!差了 10 倍的时间耶!所以,如果你并不觉得时间是你的成本考虑,那么使用 xz 会比较好!如果时间是你的重要成本,那么 gzip 恐怕是比较适合的压缩软件喔!

gzip压缩时间要比 dzip2快 dzip2 要比 xz快

xz压缩效果要比 dzip2 效果好 dzip2 要比gzip好

tar 打包指令

tar 命令在Linux系统中用于打包和压缩文件。它通常用于备份文件和目录,以及将文件组合成一个单一的文件,以便于存储或传输。tar 本身不提供压缩功能,但可以与 gzip 或 bzip2 等工具结合使用来压缩文件。

tar 命令的基本语法是:

tar [选项] 文件1 文件2 文件3 ...

这里是一些常见的 tar 命令选项及其说明:

  • -c:创建一个新的归档文件。
  • -x:解压缩归档文件。
  • -z:使用 gzip 进行压缩(与 -c 一起使用时)。
  • -j:使用 bzip2 进行压缩(与 -c 一起使用时)。
  • -v:在处理文件时显示详细信息。
  • -f:指定归档文件的名称。
  • -t:列出归档文件中包含的文件。
  • -r:向已存在的归档文件中追加文件。
  • -u:更新已存在于归档文件中的文件。
  • -p:保持文件权限不变。

例子:

  1. 创建一个包含多个文件的压缩归档文件:
tar -cvzf archive.tar.gz file1 file2 file3

这个命令会创建一个名为 archive.tar.gz 的压缩归档文件,其中包含 file1、file2 和 file3。

  1. 解压缩一个归档文件:
tar -xvzf archive.tar.gz -C /path/to/directory

这个命令会解压缩 archive.tar.gz 文件,并将解压缩后的文件放在 /path/to/directory 目录中。

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

  • 查 询:tar -jtv -f filename.tar.bz2

  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

  • 解压zip压缩格式的压缩文件

相关推荐

  1. 《设计模式之美》读书笔记2

    2024-04-15 10:06:02       21 阅读
  2. 读书之深入理解ffmpeg_简单笔记2(初步)

    2024-04-15 10:06:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-15 10:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-15 10:06:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-15 10:06:02       82 阅读
  4. Python语言-面向对象

    2024-04-15 10:06:02       91 阅读

热门阅读

  1. kafka---broker相关配置

    2024-04-15 10:06:02       35 阅读
  2. WPF中Binding的原理和应用

    2024-04-15 10:06:02       37 阅读
  3. data_process11

    2024-04-15 10:06:02       32 阅读
  4. 解决 assemble 长时间卡死并失败问题

    2024-04-15 10:06:02       36 阅读
  5. 设计模式-单一职责原则

    2024-04-15 10:06:02       44 阅读
  6. 基于springboot的大学生入学审核系统源码数据库

    2024-04-15 10:06:02       34 阅读
  7. 【C++学习】C++特殊类的设计

    2024-04-15 10:06:02       33 阅读
  8. Python 题解 牛客 OJ在线编程常见输入输出练习

    2024-04-15 10:06:02       37 阅读
  9. oracle 删除用户名

    2024-04-15 10:06:02       37 阅读
  10. 浅谈-“位运算”

    2024-04-15 10:06:02       37 阅读
  11. 【趣味学算法】16_递归练习

    2024-04-15 10:06:02       30 阅读