14. 【Linux教程】文件压缩与解压

简介: 14. 【Linux教程】文件压缩与解压

文件压缩与解压

前面小节介绍了如何对文件和目录删除、移动操作,本小节介绍如何使用命令对文件和目录进行压缩与解压操作,常见的压缩包格式有 .bz2.Z.gz.zip.xz,压缩之后的文件或目录占用更少的空间。

1. tar 命令介绍

下面列举 tar 命令的参数: image.png Tips:其中 -c-x-t-u 这五个参数是独立的,每次使用选其中一个,-f 是最后一个参数,后面跟上档案名。

1.1 将指定类型文件打包成 tar 包

为了演示方便,先切入到 /home 目录下,使用 touch 命令创建几个 .txt 文件,然后使用 tar 命令将其打包,命令如下:

cd /home
 
touch a.txt b.txt c.txt d.txt e.txt
 
ls -l
 
tar -cf alltxt.tar *.txt 
 
ls -l

执行结果如下图:

Tips:其中 alltxt.tar 是一个自定义名称,后缀是 tar ,前半部分的名字可自行定义, *.txt 中的 * 表示通配符代表所有的意思。

1.2 向现有的 tar 包中新增文件

这里再使用 touch 命令创建一个 g.txt 文件,使用 tar 命令将其新增至 alltxt.tar 中,命令如下:

touch g.txt
 
tar -rf alltxt.tar g.txt

执行结果如下图:

1.3 更新 原来 tar 包中的文件

使用 rm 命令删除 /home 目录中的 a.txt ,然后新建一个 a.txt 表示为更新后的 a.txt,使用 tar 命令将 a.txt 更新至 alltxt.tar 中,命令如下:

rm -f a.txt
 
touch a.txt
 
tar -uf alltxt.tar a.txt

执行结果如下图:

Tips:若 alltxt.tar 中没有 a.txt,那么使用 tar -uf 就会将 a.txt 新增到 alltxt.tar 中。

1.4 列出 tar 包中打包的所有文件

这里为了演示方便,将 /home 目录原有的 .txt 文件全都删除掉,然后使用 tar 命令查看 alltxt.tar 中所有文件列表,命令如下:

ls
 
rm -f *.txt
 
ls
 
tar -tf alltxt.tar

执行结果如下图:

1.5 解开 tar 包中所有文件

接着上面的内容,可以使用 tar 命令将 alltxt.tar 解开把文件释放到当前目录,命令如下:

ls
 
tar -xf alltxt.tar
 
ls

执行结果如下图:

1.6 使用 tar 命令压缩

上面打包的 alltxt.tar 文件并没有压缩文件,只是把文件都打包在一起,如下命令可以把 alltxt.tar 压缩成为不同格式的压缩包:

ls
 
tar -czf alltxt.tar.gz alltxt.tar
 
ls
 
tar -cjf alltxt.tar.bz2 alltxt.tar
 
ls
 
tar -cZf alltxt.tar.Z alltxt.tar
 
ls

执行结果如下图:

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

1.7 使用 tar 命令解压缩

为了演示方便,防止读者混淆,先将 alltxt.tar.gzalltxt.tar.bz2alltxt.tar.Z 三种格式压缩包移动至 study 目录,然后使用 tar 命令解压,命令如下:

ls 
 
mv alltxt.tar.gz study/
 
mv alltxt.tar.bz2 study/
 
mv alltxt.tar.Z study/
 
cd study/
 
ls

移动过程执行如下图:

如上图所示,将需要解压的三种格式压缩包移动至 /home/study 目录中,下面对其解压缩,命令如下:

ls
 
tar -zxvf alltxt.tar.gz
 
ls
 
rm -f alltxt.tar
 
ls
 
tar -jxvf alltxt.tar.bz2
 
ls
 
rm -f alltxt.tar
 
ls
 
tar -Zxvf alltxt.tar.Z
 
ls
2.

执行结果如下图:

Tips:命令中参数的含义可参考前面参数表格中的功能描述。

2. zip 格式压缩与解压

CentOS 8 系统中自带 zipunzip 压缩与解压工具,可以使用 zip -vunzip -v 命令查看当前是否安装 zipunzip 工具,若是没有安装,则可以使用如下命令安装:

yum -y update
 
 
yum -y install zip unzip
 

安装过程如下图:

如上图所示,先要更新 yum 源的软件包数据,如下图所示为安装 zipunzip 的过程执行图:

Tipsyum 是 Linux 中的一个软件管理仓库,关于 yum 如何安装软件后续小节会详细介绍。

2.1 使用 zip 压缩文件

使用 zip 命令可以将 alltxt.tar 包压缩为 .zip 压缩包,命令如下:

ls
 
zip alltxt.zip alltxt.tar
 
ls

执行结果如下:

Tips:可以使用 zip -r zip包名 目录名 递归压缩目录以及目录中所有文件。

2.2 使用 unzip 解压缩

为了演示方便,先将 alltxt.zip 文件移动至 /home/study 中,然后解压,命令如下:

ls
 
mv alltxt.zip study/
 
cd study/
 
ls
 
unzip alltxt.zip
 
ls

执行结果如下图:

3. 小结

本小节介绍了如何使用 tar 命令打包文件和解开 tar 包,还介绍了如何使用 tar 将文件包压缩为 .gz、.bz2、.Z 格式的压缩包,如何解压缩它们,最后还介绍了如何使用 zip、unzip 工具压缩与解压 .zip 格式的压缩包,需要注意的是使用 tar 命令将文件打包成 tar 包之后,文件并没有被压缩,只是打包在一起了,压缩文件前,也可以不打包成 tar 包,可以直接对某个文件和目录进行压缩。


相关文章
|
6天前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
30 5
|
6天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
23 6
|
6天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
31 6
|
7天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
18 4
|
7天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
21 4
|
13天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
35 2
|
12天前
|
缓存 监控 Linux
|
15天前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
35 2
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
60 0
|
6月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法