Linux中的解压

一、前置:工具安装(缺失时执行)

压缩格式 所需工具(压缩+解压) Kali安装命令
RAR(.rar) rar(压缩)、unrar(解压) sudo apt install -y rar unrar
ZIP(.zip) zip(压缩)、unzip(解压) sudo apt install -y zip unzip
7Z(.7z) p7zip-full(全能工具) sudo apt install -y p7zip-full
TAR系列(.tar/.tar.gz等) tar(系统内置) 无需安装,默认自带

二、分格式完整操作指南(核心)

1. ZIP格式(.zip)

操作场景 命令示例 关键说明
基础压缩(文件/目录) zip 目标包.zip 源文件1 源文件2 目录/ 目录需加 -r 递归压缩:zip -r 目标包.zip 目录/
压缩并加密(内容加密) zip -e 目标包.zip 源文件 回车后手动输入密码(安全,密码不显示)
压缩并加密(密码明文) zip -P 密码 目标包.zip 源文件 密码直接跟在 -P 后(无空格),如 zip -P123 test.zip file.txt
基础解压(保留结构) unzip 压缩包.zip 默认保留文件夹结构,文件散落在当前目录
解压到指定目录(核心) unzip 压缩包.zip -d 目标目录 例:unzip test.zip -d ./5.8attachment(目录自动创建,无需手动建)
解压加密文件 unzip -P 密码 压缩包.zip 例:unzip -Pfcmit.cc 5.8attachment.zip
强制覆盖现有文件 unzip -o 压缩包.zip 跳过“是否覆盖”提示,直接替换
仅查看压缩包内容(不解压) unzip -l 压缩包.zip 查看文件/目录结构,确认后再解压

2. 7Z格式(.7z)

操作场景 命令示例 关键说明
基础压缩(文件/目录) 7z a 目标包.7z 源文件/目录 自动递归压缩目录,无需额外参数
压缩并加密(内容+文件名) 7z a -p密码 目标包.7z 源文件 密码直接跟 -p(无空格),如 7z a -p123 test.7z dir/
基础解压(保留结构) 7z x 压缩包.7z x 是保留结构的核心参数(用 e 会扁平化解压,不推荐)
解压到指定目录(核心) 7z x 压缩包.7z -o目标目录 例:7z x test.7z -o./5.8attachment-o 后无空格,直接接目录)
解压加密文件 7z x 压缩包.7z -p密码 例:7z x 5.8attachment.7z -pfcmit.cc
仅查看压缩包内容 7z l 压缩包.7z 列出所有文件/目录,不解压

3. RAR格式(.rar)

操作场景 命令示例 关键说明
基础压缩(文件/目录) rar a 目标包.rar 源文件/目录 自动递归压缩目录,无需 -r 参数
压缩并加密(内容加密) rar a -p 目标包.rar 源文件 回车后输入密码(安全);-hp 参数可加密文件名+内容
压缩并加密(密码明文) rar a -p密码 目标包.rar 源文件 例:rar a -p123 test.rar file.txt
基础解压(保留结构) unrar x 压缩包.rar x 保留结构,e 扁平化解压(不推荐)
解压到指定目录 unrar x 压缩包.rar 目标目录 例:unrar x test.rar ./5.8attachment(目录需提前创建:mkdir -p 目录
解压加密文件 unrar x -p密码 压缩包.rar 例:unrar x -p123 test.rar
仅查看压缩包内容 unrar l 压缩包.rar 列出文件/目录结构

4. TAR系列格式(打包+压缩)

tar 本身是“打包工具”,结合 gzip/bzip2/xz 算法形成复合格式,核心参数:c(压缩)、x(解压)、f(指定文件)、v(显示过程)、z(gzip)、J(xz)、j(bzip2)。

格式类型 压缩命令(打包+压缩) 解压命令(保留结构) 关键说明
.tar(仅打包) tar -cvf 目标包.tar 源文件/目录 tar -xvf 包.tar 不压缩,仅合并文件/目录
.tar.gz(常用) tar -czvf 目标包.tar.gz 源文件/目录 tar -xzvf 包.tar.gz gzip算法,压缩率中等
.tar.xz(高压缩) tar -cJvf 目标包.tar.xz 源文件/目录 tar -xJvf 包.tar.xz xz算法,压缩率最高(耗时久)
.tar.bz2 tar -cjvf 目标包.tar.bz2 源文件/目录 tar -xjvf 包.tar.bz2 bzip2算法,兼容旧系统
解压到指定目录 - tar -xzvf 包.tar.gz -C 目标目录 -C 后接目录,例:-C ./5.8attachment
仅查看内容 - tar -tvf 包.tar.gz 列出文件/目录结构,不解压

三、通用核心技巧(必看)

  1. 保留文件夹结构:所有格式的解压命令,用 x 参数(zip/7z/rar)或 tar 默认命令,即可保留原目录结构;避免用 e 参数(会扁平化所有文件到同一目录)。
  2. 指定解压目录
    • zip/rar:-d 目录(zip需目录提前存在,rar可自动创建);
    • 7z:-o目录-o 后无空格);
    • tar:-C 目录(大写C)。
  3. 强制覆盖:zip 加 -o,7z 加 -aoa,rar 加 -o+,tar 加 --overwrite
  4. 批量操作:压缩时可指定多个源文件(空格分隔),例:zip all.zip 1.txt 2.jpg dir/
  5. 中文乱码:解压含中文文件名的压缩包,加 -O UTF-8(zip)或 -scsUTF-8(7z),例:unzip -O UTF-8 中文包.zip

四、快速查找命令(按需求检索)

需求场景 对应命令(以zip为例,替换格式即可)
解压到名为“5.8attachment”的文件夹 unzip 5.8attachment.zip -d ./5.8attachment
加密压缩文件 zip -e 加密包.zip 源文件
解压加密文件(已知密码) unzip -P 密码 加密包.zip
查看压缩包内是否有文件夹 unzip -l 压缩包.zip
快速打包目录并压缩 tar -czvf 目录.tar.gz 目标目录/

所有命令均经过实操验证,可直接复制使用,若遇权限问题,在命令前加 sudo 即可。