gzip 将文件进行压缩
在Linux系统中,gzip 是一个压缩和解压文件的命令工具。它使用LZ77压缩算法及霍夫曼编码(Huffman Coding)来压缩文件,通常用来减少文件的大小,以节约磁盘空间或减少网络传输的时间。
gzip 命令的常见参数及其作用如下:
- -c:将压缩的数据输出到标准输出,而不是写入文件。
- -d 或 --decompress:解压缩文件。
- -r 或 --recursive:递归地压缩或解压缩目录及其中所有文件。
- -l 或 --list:列出压缩文件的详细信息,而不解压。
- -f 或 --force:强制覆盖已存在的文件。
- -t 或 --test:测试压缩文件是否完整。
- -v 或 --verbose:在压缩或解压缩时显示详细的过程信息。
- -S 或 --suffix:指定压缩后文件的后缀,默认是 .gz。
举例:
- 解压缩文件:
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:测试压缩文件的完整性。
使用示例:
- 压缩文件
要压缩文件 example.txt,可以使用以下命令:
bzip2 example.txt
这将创建一个名为 example.txt.bz2 的压缩文件,原始文件 example.txt 将会被压缩。
- 解压缩文件
要解压缩文件 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消耗也越大。
例子
- 压缩文件
假设您想压缩一个名为 example.txt 的文件,您可以使用以下命令:
xz example.txt
这将创建一个名为 example.txt.xz 的压缩文件,原始的 example.txt 文件会保持不变。
- 解压缩文件
如果您有一个名为 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:保持文件权限不变。
例子:
- 创建一个包含多个文件的压缩归档文件:
tar -cvzf archive.tar.gz file1 file2 file3
这个命令会创建一个名为 archive.tar.gz 的压缩归档文件,其中包含 file1、file2 和 file3。
- 解压缩一个归档文件:
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压缩格式的压缩文件