在Linux环境下解密和解压RAR文件,需要借助第三方工具,因为Linux系统原生并不直接支持RAR格式的压缩与解压,RAR格式由WinRAR公司开发,其解压工具在Linux中最常用的是unrar
,此外p7zip
(通过7z命令)也支持部分RAR解压操作,以下将详细介绍具体操作步骤、注意事项及相关技巧。
准备工作:安装解压工具
在解密RAR文件前,需先确保系统安装了支持RAR解压的工具,根据Linux发行版的不同,安装命令如下:
安装unrar
unrar
是专门处理RAR文件的工具,支持解压、加密文件处理等功能。
- Ubuntu/Debian系统:
sudo apt update && sudo apt install unrar
- CentOS/RHEL系统:
sudo yum install unrar # 适用于CentOS 7及以下 sudo dnf install unrar # 适用于CentOS 8/Fedora
- Arch Linux系统:
sudo pacman -S unrar
安装p7zip(备选方案)
p7zip
是7-Zip的Linux版本,支持多种压缩格式,包括RAR(需依赖unrar
或p7zip-rar
插件)。
- Ubuntu/Debian系统:
sudo apt install p7zip-full p7zip-rar
- CentOS/RHEL系统:
sudo yum install p7zip p7zip-plugins
命令行解密RAR文件
unrar
提供丰富的命令参数,支持交互式和非交互式解密,以下是常用操作场景:
基础解压(交互式输入密码)
若RAR文件设置了密码,解压时会提示输入密码,输入正确后即可解压。
unrar x encrypted.rar
- 参数说明:
x
:表示“Extract”,解压时保持文件原有的目录结构(若压缩包内包含子文件夹,解压后会保留层级)。- 若仅需解压到当前目录且不保留结构,可用
e
参数:unrar e encrypted.rar
。
执行命令后,终端会提示:
Enter password for encrypted.rar:
输入密码(输入时不会显示字符),按回车键即可开始解压。
非交互式解压(直接指定密码)
若需在脚本中自动解压,可通过-p
参数直接指定密码(注意:密码会明文显示在命令行中,可能存在安全风险,建议仅在安全环境使用):
unrar x -p'your_password' encrypted.rar
或通过环境变量传递密码(更安全):
export RAR_PASSWORD='your_password' unrar x -p"$RAR_PASSWORD" encrypted.rar
解压到指定目录
使用-d
参数指定解压目标路径:
unrar x encrypted.rar /path/to/destination
测试加密RAR文件有效性
解压前可通过t
参数测试文件是否损坏及密码是否正确:
unrar t encrypted.rar
覆盖已有文件
若目标目录存在同名文件,默认会跳过,可通过-o+
参数强制覆盖:
unrar x -o+ encrypted.rar
分卷RAR解压
若文件为分卷压缩(如encrypted.rar.part1.rar
、encrypted.rar.part2.rar
),只需解压第一个分卷,unrar
会自动按顺序合并后续分卷:
unrar x encrypted.rar.part1.rar
图形界面解密RAR文件
对于不习惯命令行的用户,Linux桌面环境通常自带图形解压工具,支持密码输入:
- GNOME环境(如Ubuntu默认):右键点击RAR文件,选择“提取到…”,在弹出的窗口中勾选“密码”并输入密码,点击“提取”即可。
- KDE环境(如Kubuntu):右键RAR文件,选择“提取到…”,在“密码”选项卡中输入密码后执行解压。
- File Roller(通用工具):打开File Roller,点击“文件→打开”,选择RAR文件,输入密码后点击“解压”。
常见问题处理
- 提示“Bad password”:
检查密码是否正确(RAR密码区分大小写、特殊字符),确认是否为加密文件(部分RAR可能仅限压缩,无密码)。 - 提示“Unknown method in encrypted.rar”:
可能是RAR文件使用了高版本加密(如RAR5格式),旧版unrar
不支持,需升级unrar
至最新版本(或使用unrar
非开源版本,如unrar-nonfree
)。 - 解压后文件损坏:
尝试用unrar r encrypted.rar
修复压缩包,或重新下载文件。
常用unrar命令速查表
命令 | 功能描述 | 示例 |
---|---|---|
unrar x file.rar |
解压并保持目录结构 | unrar x data.rar |
unrar e file.rar |
解压到当前目录(不保持结构) | unrar e data.rar |
unrar t file.rar |
测试压缩包完整性及密码 | unrar t data.rar |
unrar l file.rar |
列出压缩包内文件(不解压) | unrar l data.rar |
unrar x -p'pwd' file.rar |
非交互式解压(指定密码) | unrar x -p'123' data.rar |
相关问答FAQs
Q1:Linux下解压RAR时提示“Bad password”,但密码确认无误,怎么办?
A:可能原因有两个:一是RAR文件为RAR5格式(高版本加密),旧版unrar
(如5.x以下)不支持,需升级unrar
至最新版本(Ubuntu可通过sudo apt install unrar-nonfree
安装支持RAR5的版本);二是密码中包含特殊字符(如空格、引号),需在命令行中使用引号包裹密码,例如unrar x -p"'your@password#'" file.rar
。
Q2:如何避免在命令行中直接输入密码,防止密码泄露?
A:可通过交互式输入或临时文件方式保护密码:
- 交互式输入:使用
read
命令读取密码并传递给unrar
,避免密码出现在命令历史中:read -sp "Enter password: " pass; unrar x -p"$pass" file.rar; unset pass
其中
-s
表示隐藏输入字符,unset pass
用于清除内存中的密码变量。 - 临时文件:将密码写入临时文件,通过
-p@
参数读取文件内容,解压后立即删除文件:echo "your_password" > /tmp/pwd.txt && unrar x -p@/tmp/pwd.txt file.rar && rm /tmp/pwd.txt
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33801.html