Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. tar工具

1.1. 工具安装(Ubuntu系统)

tar(Tape Archive)是一个核心工具,大部分的Linux发行版已经预装在系统中。

1
2
3
4
5
6
7
# 更新软件包列表
sudo apt update
# 安装 tar
sudo apt install tar

# 查看版本号验证是否安装成功
tar --version

1.2. 打包和压缩

1
2
3
4
5
6
7
8
9
10
11
# 打包目录(不压缩)
tar -cvf archive.tar /path/to/dir

# 打包并用gzip压缩 (扩展名 .tar.gz 或 .tgz)
tar -czvf archive.tar.gz /path/to/dir

# 打包并用bzip2压缩 (.tar.bz2)
tar -cjvf archive.tar.bz2 /path/to/dir

# 打包并用xz压缩 (.tar.xz)
tar -cJvf archive.tar.xz /path/to/dir

参数说明:

  • -c:创建归档
  • -z:使用gzip
  • -j:使用bzip2
  • -J:使用xz
  • -v:显示进度(可选)
  • -f:指定文件名

1.3. 解压和提取

1
2
3
4
5
6
7
8
9
10
11
# 解压 .tar
tar -xvf archive.tar -C /target/dir

# 解压 .tar.gz
tar -xzvf archive.tar.gz -C /target/dir

# 解压 .tar.bz2
tar -xjvf archive.tar.bz2 -C /target/dir

# 解压 .tar.xz
tar -xJvf archive.tar.xz -C /target/dir

参数说明:

  • -x:提取文件
  • -C:指定解压目录(可选)

2. gzip和gunzip

2.1. 工具安装(Ubuntu系统)

gzipgunzip是常用的压缩和解压工具,大部分的Linux发行版已经预装在系统中。

1
2
3
4
5
6
7
8
# 更新软件包列表
sudo apt update
# 安装 gzip(包含 gunzip)
sudo apt install gzip

# 查看版本号验证是否安装成功
gzip --version
gunzip --version

2.2. 压缩文件

1
2
3
4
5
6
7
8
# 压缩为 filename.gz,压缩后原文件会被删除
gzip filename

# 压缩为 filename.gz,并保留原文件
gzip -k filename

# 最高压缩率(1-9,默认6)
gzip -9 filename

参数说明:

  • -k:保留原文件
  • -9:设置压缩率,压缩率范围1-9,9为最高,默认6

2.3. 解压文件

1
2
3
4
5
6
7
8
# 解压为filename,解压后删除.gz文件
gunzip filename.gz

# 解压为filename,解压后保留.gz文件
gunzip -k filename.gz

# 功能等同于上面的 gunzip
gzip -d filename.gz

3. bzip2和bunzip2

3.1. 工具安装(Ubuntu系统)

bzip2 和 bunzip2 是用于处理 .bz2 压缩文件的工具,大部分的Linux发行版已经预装在系统中。

1
2
3
4
5
6
7
8
# 更新软件包列表
sudo apt update
# 安装 bzip2(包含 bunzip2)
sudo apt install bzip2

# 查看版本号验证是否安装成功
bzip2 --version
bunzip2 --version

3.2. 压缩文件

1
2
3
4
5
6
7
8
# 压缩为filename.bz2,压缩后原文件会被删除
bzip2 filename

# 压缩为filename.bz2,并保留原文件
bzip2 -k filename

# 最高压缩率(1-9,9为最高,默认9)
bzip2 -9 filename

参数说明:

  • -k:保留原文件
  • -9:设置压缩率,压缩率范围1-9,9为最高,默认6

3.3. 解压文件

1
2
3
4
5
6
7
8
# 解压为filename,解压后删除.bz2文件
bunzip2 filename.bz2

# 解压为filename,解压后保留.bz2文件
bunzip2 -k filename.bz2

# 功能等同于上面的 bunzip2
bzip2 -d filename.bz2

4. xz和unxz

4.1. 工具安装(Ubuntu系统)

xzunxz是用于处理.xz压缩文件的工具,提供超高压缩率(尤其适合文本文件)。安装方法如下:

1
2
3
4
5
6
7
8
# 更新软件包列表
sudo apt update
# 安装xz-utils工具集,会包含xz、unxz、xzcat等工具
sudo apt install xz-utils

# 查看版本号验证是否安装成功
xz --version
unxz --version

4.2. 压缩文件

1
2
3
4
5
6
7
8
# 压缩为filename.xz,压缩后原文件会被删除
xz filename

# 压缩为filename.xz,并保留原文件
xz -k filename

# 设置压缩率(0-9,,9为最高,默认6)
xz -9 filename

4.3. 解压文件

1
2
3
4
5
6
7
8
# 解压为filename,解压后删除.xz文件
unxz filename.xz

# 解压为filename,解压后保留.xz文件
unxz -k filename.xz

# 功能等同于上面的 unxz
xz -d filename.xz

5. zip和unzip

.zip压缩格式的平台兼容性最强,macOS和Windows都默认支持,Linux下安装zip和unzip工具即可支持。

5.1. 工具安装(Ubuntu系统)

大部分的Linux发行版默认不支持该工具,需要手动下载。

1
2
3
4
5
6
7
8
9
10
# 更新软件包列表
sudo apt update
# 压缩工具
sudo apt install zip
# 解压工具
sudo apt install unzip

# 查看版本号验证是否安装成功
zip --version
unzip --version

5.2. 加密文件

1
2
3
4
5
6
7
8
9
10
11
# 压缩单个文件
zip archive.zip file.txt

# 压缩多个文件
zip archive.zip file1.txt file2.txt

# 递归压缩整个目录(-r 表示递归)
zip -r archive.zip /path/to/directory

# 设置压缩级别(0-9,9为最高,默认6)
zip -9 -r archive.zip /path/to/directory
  • -r: 表示递归压缩(包含子目录和文件)。
  • archive.zip: 是生成的压缩文件名(可自定义)。
  • /path/to/directory: 是要压缩的目录路径。
  • -9: 表示压缩级别,级别范围0-9,9为最高,默认6。

5.3. 解密文件

1
2
3
4
5
6
7
8
# 解压到当前目录
unzip archive.zip

# 解压到指定目录(-d 后接目标路径)
unzip archive.zip -d /target/directory

# 查看压缩包内容(不解压)
unzip -l archive.zip

5.4. 乱码问题

因编码问题导致中文乱码时,可以指定编码格式。

1
2
unzip -O GBK archive.zip   # Windows 压缩包通常用 GBK 编码
unzip -O UTF-8 archive.zip # 或尝试 UTF-8

6. 7zip工具

6.1. 工具安装(Ubuntu系统)

大部分的Linux发行版默认不支持该工具,需要手动下载。

1
2
3
4
5
6
7
8
9
# 更新软件包列表
sudo apt update
# 全量安装,包含 7z、7za 命令,支持更多格式
sudo apt install p7zip-full
# 精简安装,功能较少(仅基础压缩)
sudo apt install p7zip

# 查看版本号验证是否安装成功
7z --help

6.2. 压缩文件

1
2
7z a archive.7z /path/to/file_or_dir  # 基础压缩
7z a -t7z -m0=lzma2 -mx=9 archive.7z /path/to/dir # 最高压缩率

参数说明:

  • a: 添加文件到压缩包。
  • -t7z: 指定格式为.7z,可替换为-tzip-ttar等。
  • -mx=9: 设置压缩率,压缩级别0-9,9为最高。
  • -m0=lzma2: 使用LZMA2算法(默认)。

6.3. 解压文件

1
2
3
4
5
# 解压到当前目录
7z x archive.7z

# 解压到指定目录
7z x archive.7z -o/path/to/dir

参数说明:

  • x: 保留完整路径解压
  • -o: 指定输出目录(注意无空格,如 -o/home/user)

6.4. 查看压缩包

1
2
3
4
# 列出文件
7z l archive.7z
# 测试压缩包完整性
7z t archive.7z

7. 总结说明

  1. tar工具是Linux下最常用的打包和压缩(及解压)工具,可以实现各种压缩格式的打包和解压,如常见的gzipbzip2xz等。
  2. gzip和gunzipbzip2和bunzip2xz和unxz三种工具主要应用于单文件的压缩和解压,而且用法和参数几乎相同。
  3. zip和7zip的压缩格式,平台兼容性最好(尤其是zip格式)。Windows、macOS和Linux都支持。
推荐阅读
Linux C++ 开发1 - 搭建C++开发环境 Linux C++ 开发1 - 搭建C++开发环境 Ubuntu系统安装Python Ubuntu系统安装Python Ubuntu安装ROS2 Ubuntu安装ROS2

评论