[Tool] Linux下的压缩和解压

01 tar

1.1 常见压缩

# gzip 压缩(速度较快,压缩率适中)
tar czvf file.tar.gz folder/                # 压缩
tar xzvf file.tar.gz                        # 解压

# bzip2 压缩(压缩率较好,速度较慢)
tar cjvf file.tar.bz2 folder/               # 压缩
tar xjvf file.tar.bz2                       # 解压

# xz 压缩(压缩率很高,速度很慢)
tar cJvf file.tar.xz folder/                # 压缩
tar xJvf file.tar.xz                        # 解压

# 仅打包,不压缩
tar cvf file.tar folder/                    # 打包
tar xvf file.tar                            # 解包

# 通用解压命令(自动检测压缩格式)
tar xvf file.tar.gz                         # 自动识别gz格式
tar xvf file.tar.bz2                        # 自动识别bz2格式
tar xvf file.tar.xz                         # 自动识别xz格式
tar xvf file.tar                            # 解包tar文件

# 解压到指定目录
tar xzvf file.tar.gz -C /path/to/destination/  # 解压到指定路径
tar xvf file.tar.gz -C /path/to/destination/   # 通用格式解压到指定路径

1.2 压缩/解压+加密

1.2.1 步骤执行

# 加密压缩流程
tar czvf test.tar.gz test                    # 先打包压缩
openssl enc -e -aes256 -salt -pbkdf2 -in test.tar.gz -out test.tar.gz.enc  # 再加密

# 解密解压流程
openssl enc -d -aes256 -salt -pbkdf2 -in test.tar.gz.enc -out test.tar.gz  # 先解密
tar xzvf test.tar.gz                         # 再解压

1.2.2 直接执行(管道)

以bzip2为例:

# 使用 bzip2 压缩并加密
# tar参数: c(创建归档) j(bzip2压缩) v(显示进度) f(文件) -(标准输出)
# openssl参数: enc(编码) e(加密) aes256(加密算法) salt(加盐) pbkdf2(密钥派生) out(输出文件)
tar cjvf - test | openssl enc -e -aes256 -salt -pbkdf2 -out test.tar.bz2.enc

# 解压 bzip2 加密文件
# openssl参数: enc(编码) d(解密) aes256(加密算法) salt(加盐) pbkdf2(密钥派生) in(输入文件)
# tar参数: x(解压) j(bzip2解压) v(显示进度) f(文件) -(从标准输入读取)
openssl enc -d -aes256 -salt -pbkdf2 -in test.tar.bz2.enc | tar xjvf -

02 zip

兼容性好,使用方便

2.1 基础压缩

zip documents.zip file1.txt file2.pdf      # 压缩多个文件
zip -r source_code.zip source_code/        # -r: 递归压缩目录
zip -9 archive.zip large_file.iso          # -9: 最高压缩率
zip -1 data.zip folder/                    # -1: 最快压缩速度
zip -q quiet.zip files/                    # -q: 安静模式,不输出信息

2.2 加密压缩

zip -re secure.zip sensitive_data/         # -re: 加密压缩(交互式输入密码)
zip -r -P password secure.zip folder/      # -P: 直接指定密码(有安全风险)
zip -r -e -P pass secure.zip docs/         # 组合参数:递归加密压缩

随后会让输入密码,并二次确认

2.3 解压缩

unzip archive.zip                          # 解压到当前目录
unzip archive.zip -d /target/path/         # -d: 解压到指定目录
unzip -l archive.zip                       # -l: 仅列出文件,不解压
unzip -o archive.zip                       # -o: 覆盖已存在文件不提示
unzip -n archive.zip                       # -n: 不覆盖已存在文件
unzip -q archive.zip                       # -q: 安静模式解压

2.4 查看管理

zipinfo archive.zip                        # 查看压缩包详细信息
zipinfo -1 archive.zip                     # -1: 仅显示文件名列表
zipinfo -v archive.zip                     # -v: 显示每个文件的详细信息
zipinfo -h                                 # 查看帮助信息

unzip -t archive.zip                       # -t: 测试压缩包完整性
unzip -v archive.zip                       # -v: 详细模式列出内容

03 7zip

3.1 压缩

7z a test.zip test                          # a: 添加到压缩包

3.2 带密码压缩

7z a test.zip test -p                       # -p: 交互式输入密码
7z a test.zip test -p[passwd]               # -p[passwd]: 直接指定密码

3.3 大文件分卷压缩

7z a -p密码 -v100M -mhe=on volum_file.7z big_file.iso
# -v100M: 分卷大小100MB
# -mhe=on: 加密文件头

3.4 解压

7z x test.zip                               # x: 完整路径解压

04 rar(压缩需要授权,解压开源)

重要提示:法律与许可

  • rar:该软件为 商业软件,提供 40 天试用期。试用期满后,虽功能不受限,但继续使用被视为非授权行为
    个人使用风险较低,但商业用途可能面临法律风险
  • unrar:该软件为 开源免费软件,可随意安装使用,仅提供解压功能。

4.1 工具下载

sudo apt update
sudo apt install rar unrar                  # 安装rar和unrar工具

4.2 压缩

rar a archive_name.rar file1 file2 directory/    # a: 添加到压缩包
rar a myfiles.rar document.txt image.jpg my_folder/

4.3 解压

unrar e filename.rar                        # e: 解压到当前目录
unrar e filename.rar /path/to/destination/  # 解压到指定目录

4.4 查看

unrar l filename.rar                        # l: 列出压缩包内容
unrar v filename.rar                        # v: 详细列表信息
posted on 2025-04-15 00:05  风惊庭前叶  阅读(28)  评论(0)    收藏  举报