Linux常用命令-压缩和解压

本文介绍了Linux和UNIX系统中常用的文件压缩和解压缩工具,如tar、gzip、gunzip、zip、unzip、bzip2、bunzip2、xz和unxz,以及它们的基本语法、常用选项和示例。同时提及了权限管理和相关资源的学习途径。

在这里插入图片描述

tar

tar命令是Linux和UNIX系统中用来打包和压缩文件的一种工具。tar名称来自“Tape Archive”的缩写,虽然它最初是为了将文件写入磁带而设计的,但现在它被广泛用于创建文件的压缩包。tar可以将多个文件合并成一个文件,同时可以保留原始文件的权限、时间信息等。它常与gzip或bzip2等工具结合使用来压缩数据。

基本语法:

tar [选项]... [文件]...

常见的选项有:

-c:创建一个新的归档文件。
-x:从归档文件中提取文件。
-t:列出归档内容。
-z:通过gzip压缩或解压缩归档。
-j:通过bzip2压缩或解压缩归档。
-v:在处理时显示详细的信息。
-f:指定归档文件的名称。
-p:保留文件的权限。

例子:

  1. 创建归档文件
    将directory目录打包到名为archive.tar的归档文件中:
tar -cvf archive.tar directory/
  1. 查看归档内容
    查看archive.tar归档文件中的内容,而不解压它:
tar -tf archive.tar
  1. 解压归档文件
    将archive.tar归档文件解压到当前目录中:
tar -xvf archive.tar
  1. 创建经过gzip压缩的归档文件
    将directory目录压缩成名为archive.tar.gz的归档文件:
tar -czvf archive.tar.gz directory/
  1. 解压gzip压缩的归档文件
    将archive.tar.gz归档文件解压到当前目录中:
tar -xzvf archive.tar.gz
  1. 创建经过bzip2压缩的归档文件
    将directory目录压缩成名为archive.tar.bz2的归档文件:
tar -cjvf archive.tar.bz2 directory/
  1. 解压bzip2压缩的归档文件
    将archive.tar.bz2归档文件解压到当前目录中:
tar -xjvf archive.tar.bz2

tar命令是Linux/UNIX系统中文件打包压缩的重要工具,通过结合不同的选项,可以灵活地进行文件的压缩、解压以及管理。

gzip和gunzip

gzip 和 gunzip 是在 Linux 和 UNIX 系统中常用的压缩和解压缩工具,它们主要针对单个文件的压缩和解压缩操作。gzip 代表 GNU zip,旨在提供一种压缩和存储文件的有效方式,而 gunzip 是 gzip 的逆操作,用于解压由 gzip 创建的压缩文件。

gzip

gzip 通过使用 Lempel-Ziv 编码 (LZ77) 和哈夫曼编码来减小文件的大小,它主要用于压缩文件,以减少磁盘空间的占用和加快文件传输的速度。gzip 默认将原始文件压缩后的扩展名设置为 .gz,并替换原始文件。

gzip 基本语法

gzip [选项] [文件名]

gzip 常用选项

-d:解压缩文件(等同于运行 gunzip)。
-k:保留原始文件,不删除。
-l:列出压缩文件的相关信息而不进行解压。
-r:递归地遍历目录,压缩目录下的所有文件。
-v:显示压缩或解压缩过程中的文件名称和压缩比。
-1 到 -9:调整压缩级别,-1 代表最快的压缩速率(压缩率最低),-9 代表最佳压缩(速度最慢)。

gzip 例子

  1. 压缩一个文件,保留原文件:
gzip -k file.txt
  1. 将所有 .txt 文件压缩,不保留原文件:
gzip *.txt
  1. 使用最佳压缩比压缩文件:
gzip -9 file.txt

gunzip

gunzip 是用于解压 .gz 文件的工具。它将 .gz 文件解压缩成原始格式,并默认删除压缩文件。

gunzip 基本语法

gunzip [选项] [压缩文件名]

gunzip 常用选项

-c:将解压后的数据输出到标准输出,可以与其他命令结合使用。
-k:解压缩时保留原始的压缩文件。
-r:递归地遍历目录,解压缩目录下的所有 .gz 文件。
-v:显示解压缩的文件名称和压缩比。

gunzip 例子

  1. 解压一个 .gz 文件:
gunzip file.gz
  1. 递归解压当前目录下的所有 .gz 文件,并保留原始的 .gz 文件:
gunzip -rkv .
  1. 解压缩文件到标准输出:
gunzip -c file.gz > file.txt

gzip 和 gunzip 由于其高效的压缩算法和简单的使用方式,在日常的文件管理和网络传输中被广泛运用。使用时应根据需要选择合适的选项,以达到最佳的压缩或解压缩效果。

zip和unzip

zip 和 unzip 是在多种操作系统上广泛使用的文件压缩和解压缩工具。与 gzip 和 tar 等工具不同,zip 工具可以直接处理多个文件和目录,将它们压缩成一个 .zip 压缩文件,并且可以选择性地压缩文件以减小文件大小。unzip 则用于解压缩这些 .zip 文件。

zip

zip 是一种很方便的打包文件,它可以将多个文件或文件夹压缩成一个 .zip 格式的压缩包,同时它还支持文件的加密。

zip 基本语法

zip [选项] [压缩文件名] [文件名…]
zip 常用选项
-r:递归地包含目录,用于压缩目录及其所有内容。
-q:安静模式,压缩时不显示任何消息。
-e:创建加密的压缩文件。
-m:压缩和移除源文件,将文件压缩到压缩包中后删除原文件。
-o:设置压缩文件的最后修改时间为最新。
-u:仅更新压缩包中已改变或新增的文件。

zip 例子

  1. 将 file1.txt 和 file2.txt 压缩到名为 archive.zip 的压缩文件中:
zip archive.zip file1.txt file2.txt
  1. 递归地将 directory 目录及其所有内容压缩到 archive.zip:
zip -r archive.zip directory/
  1. 创建一个加密的压缩文件:
zip -e secure.zip file1.txt file2.txt

unzip

unzip 工具用于解压缩 .zip 格式的压缩文件。

unzip 基本语法

unzip [选项] [压缩文件名]

unzip 常用选项

-l:列出压缩文件中的内容,而不解压。
-d [目录]:解压缩到指定的目录。
-o:在不提示的情况下覆盖文件。
-q:安静模式,解压缩时不显示任何输出。
-n:不要覆盖已经存在的文件。

unzip 例子

  1. 解压 archive.zip:
unzip archive.zip
  1. 列出 archive.zip 中的文件,而不解压它:
unzip -l archive.zip
  1. 将 archive.zip 解压到 folder 目录:
unzip archive.zip -d folder

zip 和 unzip 命令的灵活性和多功能性使得它们在文件压缩与解压缩的场景中非常有用。它们支持多平台,包括 Linux、Unix、Windows、macOS 等,因此是处理 .zip 文件的理想工具。

bzip2和bunzip2

bzip2

bzip2 是一个使用 Burrows-Wheeler 块排序文本压缩算法和哈夫曼编码的开源压缩工具。相比于 gzip,bzip2 通常能提供更高的压缩率,尤其是对于文本文件,但这也意味着它在压缩和解压缩时可能会更消耗 CPU 资源和时间。bzip2 生成的压缩文件通常有 .bz2 扩展名。

bzip2的基本语法

bzip2 [选项] [文件名...]

常用选项

-z:压缩文件,默认选项。
-d:解压缩文件,等同于 bunzip2 命令。
-k:保留原始文件,不删除。
-v:详细模式,显示压缩或解压缩过程中的信息。
-1 到 -9:设置压缩等级。-1 速度最快(压缩率最低),-9 速度最慢(压缩率最高)。

使用示例

  1. 压缩文件 file.txt,压缩后的文件为 file.txt.bz2,原文件被删除:
bzip2 file.txt
  1. 以最高的压缩率来压缩文件 file.txt:
bzip2 -9 file.txt
  1. 解压缩 file.txt.bz2:
bzip2 -d file.txt.bz2

bunzip2

bunzip2 是 bzip2 的解压工具,专门用于解压 .bz2 文件。其实 bzip2 工具本身就可以通过 -d 选项来解压缩文件,但 bunzip2 提供了一个专门的命令来执行解压缩操作。

bunzip2的基本语法

bunzip2 [选项] [文件名...]

由于 bunzip2 是专门用于解压的,它的选项比较简单:

-k:保留原始 .bz2 文件,不删除。
-v:详细模式,显示解压缩过程中的信息。

使用示例

  1. 解压缩文件 file.txt.bz2,解压后的文件为 file.txt,并删除原 file.txt.bz2 文件:
bunzip2 file.txt.bz2`
  1. 保留 .bz2 压缩文件:
bunzip2 -k file.txt.bz2

总结

bzip2 和 bunzip2 是处理 .bz2 压缩格式的有力工具。它们的压缩效率比 gzip 更高,特别适合压缩文本文件。然而,要注意的是,较高的压缩率通常意味着更高的CPU和内存使用率,以及更长的压缩和解压时间。这些工具广泛应用于需要节省存储空间或优化文件传输大小的场合。

xz和unxz

xz

xz 是一种使用 LZMA (Lempel-Ziv-Markov链算法) 压缩算法的数据压缩工具,通常提供比 gzip 或 bzip2 更高的压缩率。xz 在很多方面都类似于 bzip2。xz 压缩的文件通常具有 .xz 扩展名。

xz 的另一个特性是它支持不同的压缩预设,从而提供了速度和压缩率之间的灵活平衡。此外,xz 也具有较好的解压速度,并且对内存的需求通常较低。

xz的基本语法

xz [选项] [文件...]

常用选项

-z:压缩文件,默认选项。
-d:解压缩,等同于 unxz 命令。
-k:保留(不删除)输入文件。
-v:详细模式,显示压缩或解压缩的进度信息。
-l:列出压缩文件的信息,不解压文件。
-c:将输出写至标准输出(stdout),允许重定向到另一个程序或文件。
-1 到 -9:设置压缩等级,-1 为最快压缩速度(低压缩率),-9 为最慢压缩速度(高压缩率)。
-e:使用极端压缩选项,通常会得到稍微更小的文件,以牺牲所需时间和内存消耗为代价。

使用示例

  1. 压缩文件 file.txt,输入文件被删除,输出为 file.txt.xz:
xz file.txt
  1. 使用最高压缩等级压缩文件 file.txt:
xz -9e file.txt
  1. 解压缩文件 file.txt.xz:
xz -d file.txt.xz

或者使用 unxz 命令:

unxz file.txt.xz

另外,你也可以过滤输出到其它命令:

xz -c file.txt | some_command

unxz

unxz 是 xz 的伴随工具,用于解压缩 .xz 文件。其功能与 xz -d 相同。通常,unxz 只有一个主要的用途,那就是解压 .xz 压缩过的文件。

unxz的基本语法

unxz [选项] [压缩文件...]

常用的 unxz 选项和 xz 的解压缩选项 -d 基本相同,因此这里不再赘述。

使用示例

  1. 解压缩文件 file.txt.xz,原压缩文件在解压后会被删除:
unxz file.txt.xz
  1. 如果想在解压后保留原始 .xz 文件:
unxz -k file.txt.xz

总结

xz 和 unxz 是处理 .xz 格式压缩文件的强大工具,提供高压缩率和较快的解压速度,尤其适合大型文件和支持的系统资源较充足的场合。由于 xz 格式能提供很高的数据压缩比,因此它常被用于软件分发,如 Linux 发行版中的包管理。然而,高级别的压缩设置可能会显著增加时间和内存消耗,因此在使用时需要根据实际情况调整压缩级别。

参考资料

在线文档和手册

  1. Linux 用户管理手册
    通过 man useradd, man usermod, man passwd, man groupadd 等命令来获取命令使用手册。
  2. Linux 权限管理手册
    使用 man chmod, man chown, man chgrp 等命令对权限管理命令获取帮助手册。
  3. GNU Coreutils 文档
    https://www.gnu.org/software/coreutils/manual/coreutils.html
    包含了GNU 版本的权限和用户管理工具的详细信息。

图书

  1. “UNIX and Linux System Administration Handbook” by Evi Nemeth, Garth Snyder, Trent R. Hein, and Ben Whaley
    这本书被认为是 Unix 和 Linux 系统管理的经典著作,它详细讲解了包括用户管理和权限设置在内的众多主题。

  2. “Linux Administration: A Beginner’s Guide” by Wale Soyinka
    这本指南适用于初学者,并涉及了系统安装、配置、更新、监控和用户管理的基础内容。

  3. “How Linux Works: What Every Superuser Should Know” by Brian Ward
    此书提供了 Linux 系统的深入分析,包括文件系统管理、用户权限等关键主题。

在线教程和指南

  1. DigitalOcean 社区教程
    https://www.digitalocean.com/community
    提供了一系列关于权限和用户管理的详细教程,适用于不同层次的用户。
    Linuxize

  2. https://linuxize.com/
    包含许多关于 Linux 用户和权限管理的教程和文章。

  3. Tecmint
    https://www.tecmint.com/
    这个网站包含许多指南和教程,覆盖了 Linux 权限、用户账户创建和管理等方面。

论坛和社区

  1. Stack Overflow
    在 Stack Overflow https://stackoverflow.com/ 上搜索和学习社区提供的关于用户和权限管理的答案和解决方案。
  2. Unix & Linux Stack Exchange
    定位于 Unix 和 Linux 用户的问题和答案:https://unix.stackexchange.com/
  3. Reddit 的 Linux 社群
    Reddit 上的 Linux 用户社区是交流经验和获取建议的好地方:https://www.reddit.com/r/linux/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

namedlock

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值