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

本文详细介绍了Linux系统中gzip、bzip2和xz三种文件压缩工具的使用方法、参数、优缺点,以及它们与tar命令的结合应用,强调了压缩效率和时间成本的关系。
摘要由CSDN通过智能技术生成

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压缩格式的压缩文件

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值