Linux实操篇-压缩和解压类

发布于:2025-04-08 ⋅ 阅读:(14) ⋅ 点赞:(0)

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。

以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇

一、gzip、gunzip、zip、unzip、tar概念

在这里插入图片描述
在这里插入图片描述
gzip有点坑,不保留原文件
在这里插入图片描述
gunzip也是不保留原文件

在这里插入图片描述
在这里插入图片描述
源文件都在
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
压缩是zcvf 解压是zxvf
在这里插入图片描述
案例4,改成了 解压到 /opt目录下

二、gzip、gunzip、zip、unzip、tar实战

在 Linux 或类 Unix 系统中,gzipgunzipzipunziptar 都是用于文件压缩和解压缩的工具。它们有不同的用途和工作方式,下面是它们的详细解释。

1. gzip 和 gunzip

gzip 是 GNU zip 的缩写,它是一种常用的文件压缩工具,用于压缩文件,使其体积更小,便于存储或传输。gunzipgzip 的解压缩工具。

1.1 gzip — 压缩文件

gzip 用于将一个文件压缩成 .gz 格式。它只支持对单个文件进行压缩,而不是对多个文件或目录进行压缩。

  • 使用方式:

    gzip filename
    

    这会将 filename 文件压缩为 filename.gz,并删除原文件。

  • 保留原文件(不删除原文件):

    gzip -c filename > filename.gz
    
  • 查看压缩文件的内容:

    gzip -l filename.gz
    
1.2 gunzip — 解压文件

gunzip 用于解压 .gz 格式的压缩文件,恢复成原来的文件。

  • 使用方式:

    gunzip filename.gz
    

    这会解压 filename.gz 文件,恢复成原始的 filename 文件。

  • 解压后保留 .gz 文件:

    gunzip -c filename.gz > filename
    

2. zip 和 unzip

zipunzip 是用于压缩和解压缩文件的工具,常用于创建压缩包,支持压缩多个文件或整个目录。

2.1 zip — 创建压缩包

zip 用于将多个文件或目录压缩成 .zip 格式的文件。与 gzip 不同,zip 可以压缩多个文件和目录,并且生成一个 .zip 包。

  • 使用方式:

    zip archive.zip file1 file2 file3
    

    这会将 file1file2file3 压缩成一个名为 archive.zip 的压缩包。

  • 压缩整个目录(包括目录内的所有文件):

    zip -r archive.zip directory
    
  • 使用密码保护压缩包:

    zip -e archive.zip file1 file2
    
2.2 unzip — 解压缩 .zip 文件

unzip 用于解压 .zip 格式的压缩包。

  • 使用方式:

    unzip archive.zip
    

    这会将 archive.zip 解压到当前目录。

  • 解压到指定目录:

    unzip archive.zip -d /path/to/destination
    
  • 查看压缩包的内容:

    unzip -l archive.zip
    

3. tar

tar(Tape Archive)是一个用于打包多个文件和目录的工具,它可以将多个文件合并成一个文件。tar 本身并不进行压缩,它通常与 gzipbzip2 配合使用来实现压缩。

3.1 tar — 打包文件

tar 用于将多个文件或目录打包成一个归档文件,通常是 .tar 格式。

  • 创建一个归档文件(打包多个文件):

    tar -cvf archive.tar file1 file2 file3
    

    这里的选项解释:

    • c:创建一个新的归档文件。
    • v:显示详细信息(可选)。
    • f:指定归档文件的名字。
  • 打包整个目录:

    tar -cvf archive.tar directory
    
3.2 tar 与压缩一起使用

tar 常与压缩工具(如 gzip)结合使用,创建一个压缩的归档文件(例如 .tar.gz.tgz 格式)。

  • 使用 gzip 压缩归档文件:
    tar -czvf archive.tar.gz directory
    
    选项解释:
    • c:创建归档。
    • z:使用 gzip 压缩。
    • v:显示详细信息。
    • f:指定文件名。
3.3 tar — 解压和解包归档文件

tar 同时也可以用来解压 .tar.tar.gz.tgz 等格式的归档文件。

  • 解压 .tar 文件:

    tar -xvf archive.tar
    
  • 解压 .tar.gz.tgz 文件(解压并解压缩):

    tar -xzvf archive.tar.gz
    
  • 解压到指定目录:

    tar -xzvf archive.tar.gz -C /path/to/destination
    
3.4 常用选项总结:
  • c:创建归档文件(create)。
  • x:提取归档文件(extract)。
  • v:显示详细信息(verbose)。
  • f:指定归档文件的名称(file)。
  • z:使用 gzip 压缩或解压缩。

总结

  • gzip:压缩单个文件,生成 .gz 格式文件。
  • gunzip:解压 .gz 格式的压缩文件。
  • zip:压缩多个文件或目录,生成 .zip 格式的文件。
  • unzip:解压 .zip 格式的压缩文件。
  • tar:打包多个文件或目录,常与压缩工具结合使用(如 gzip),生成 .tar.gz.tgz 格式的归档文件。

在实际使用中,选择合适的工具取决于压缩需求:如果你需要压缩多个文件并保持文件结构,通常使用 tar;如果只需要压缩单个文件,gzipzip 可能更为合适。

三、其他扩展

在 Linux 系统中,压缩和解压是常见的操作,尤其在文件传输、备份和存档过程中。Linux 提供了多种命令行工具用于压缩和解压不同格式的文件。以下是常用的 Linux 压缩和解压工具的分类和使用方法。

1. tar

tar 是最常用的归档工具,用于将多个文件或目录打包成一个文件。它本身并不进行压缩,但可以与压缩工具如 gzipbzip2 等结合使用,进行压缩操作。

1.1 打包和压缩 (tar + gzip / bzip2 / xz)
  • 压缩成 .tar.gz(使用 gzip)

    tar -czvf archive.tar.gz directory_or_files
    
    • c:创建归档
    • z:使用 gzip 压缩
    • v:显示详细过程(可选)
    • f:指定归档文件名
  • 压缩成 .tar.bz2(使用 bzip2)

    tar -cjvf archive.tar.bz2 directory_or_files
    
    • j:使用 bzip2 压缩
  • 压缩成 .tar.xz(使用 xz)

    tar -cJvf archive.tar.xz directory_or_files
    
    • J:使用 xz 压缩
1.2 解压归档文件
  • 解压 .tar 文件
    tar -xvf archive.tar
    
  • 解压 .tar.gz 文件
    tar -xzvf archive.tar.gz
    
  • 解压 .tar.bz2 文件
    tar -xjvf archive.tar.bz2
    
  • 解压 .tar.xz 文件
    tar -xJvf archive.tar.xz
    
  • 指定解压到某个目录
    tar -xzvf archive.tar.gz -C /path/to/destination/
    

2. gzipgunzip

gzip 是一个常用的压缩工具,专门用于压缩单个文件。压缩后的文件通常具有 .gz 后缀。

  • 压缩文件

    gzip filename
    

    这将会压缩文件 filename,并生成 filename.gz,原文件会被删除。

  • 保留原文件压缩

    gzip -c filename > filename.gz
    
  • 解压 .gz 文件(使用 gunzip):

    gunzip filename.gz
    

    这将解压 filename.gz 并恢复为原文件 filename

  • 解压并保留原文件

    gunzip -c filename.gz > filename
    

3. zipunzip

zip 是一个用于压缩文件和文件夹的工具,它支持多文件压缩并且压缩包可以跨平台使用(适用于 Windows 和 Linux)。

3.1 创建 .zip 文件
  • 压缩文件或目录

    zip archive.zip file1 file2 file3
    

    这将把 file1file2file3 压缩为一个名为 archive.zip 的文件。

  • 递归压缩目录

    zip -r archive.zip directory
    
  • 使用密码保护压缩包

    zip -e archive.zip file1 file2
    
3.2 解压 .zip 文件
  • 解压压缩包

    unzip archive.zip
    

    这将解压文件到当前目录。

  • 解压到指定目录

    unzip archive.zip -d /path/to/destination/
    

4. bzip2bunzip2

bzip2 是另一种文件压缩工具,通常用于压缩单个文件,生成 .bz2 格式。

4.1 压缩文件
  • 压缩文件

    bzip2 filename
    

    这将压缩文件 filename 并生成 filename.bz2,原文件会被删除。

  • 保留原文件

    bzip2 -k filename
    
4.2 解压 .bz2 文件
  • 解压文件

    bunzip2 filename.bz2
    
  • 保留原 .bz2 文件并解压

    bunzip2 -k filename.bz2
    

5. xzunxz

xz 是一种比 gzipbzip2 更高效的压缩工具,常用于生成 .xz 格式的压缩文件。

5.1 压缩文件
  • 压缩文件

    xz filename
    

    这将压缩 filename 文件并生成 filename.xz,原文件会被删除。

  • 保留原文件

    xz -k filename
    
5.2 解压 .xz 文件
  • 解压文件

    unxz filename.xz
    
  • 保留原 .xz 文件并解压

    unxz -k filename.xz
    

6. 7zip (p7zip)

7zip 是一个高效的文件压缩工具,支持多种格式(如 .7z.zip.tar 等),它的压缩比通常比其他工具更高。

6.1 安装 7zip

在一些 Linux 发行版中,7zip 可能需要安装:

sudo apt install p7zip-full  # Debian/Ubuntu
sudo yum install p7zip       # CentOS/RHEL
6.2 创建 .7z 压缩包
  • 压缩文件或目录
    7z a archive.7z file1 file2 file3
    
6.3 解压 .7z 压缩包
  • 解压 .7z 文件
    7z x archive.7z
    

总结

工具 功能 常见文件格式
tar 打包多个文件或目录 .tar.tar.gz.tar.bz2.tar.xz
gzip 压缩单个文件 .gz
gunzip 解压 .gz 文件 .gz
zip 压缩多个文件或目录 .zip
unzip 解压 .zip 文件 .zip
bzip2 压缩单个文件 .bz2
bunzip2 解压 .bz2 文件 .bz2
xz 压缩单个文件 .xz
unxz 解压 .xz 文件 .xz
7zip 高效压缩和解压工具 .7z.zip.tar

这些工具在 Linux 系统上广泛使用,帮助用户进行文件和目录的压缩、归档、解压操作。选择适合的工具可以提升文件管理效率,尤其在备份和数据传输时。