这是一个更具体的问题How to open rar file in linux (asked in 2015)在撰写本文时没有详细回答 p7zip 打开 RAR 文件。
p7zip 本质上是 Linux 上的 7-zip 存档管理器,只是不包括图形界面。p7zip 应该可以像 7-zip 一样打开 RAR 文件,但是使用 p7zip 无法打开一些最近下载的 RAR 文件。RAR 文件本身没有损坏。
此问题可能涵盖以下子问题(不带问号,以免与主要问题混淆),这些子问题与解释方法相关:
那么如何使用p7zip打开RAR文件呢?
这是一个自我回答的问题,就像一个新问题一样,是根据这个元帖子中的讨论创建的。如果答案不止一个,最准确和最完整的答案将在一段时间后(而不是立即)被接受。
小智 15
p7zip 是 7-Zip 的 Unix 命令行端口,支持多种格式。p7zip 仅支持 RAR 格式的解包或解压。用户可以下载二进制文件和源代码,也可以安装 Linux 发行版和其他受支持系统提供的软件包。
有了二进制文件和源代码,p7zip 可以在一个下载文件中获得,该文件可以处理所有支持的格式,并且安装是可选的。这意味着只要 Linux 上的本机存档管理器提取了下载文件 (tar.bz2),就可以运行命令行工具。
对于这些包,p7zip 将需要单独的包来处理所有支持的格式,并且需要安装。对于 Debian(和 Ubuntu),p7zip 可以从存储库中的三个不同的包中获得。确保首先启用和更新主要和非自由存储库(或 Ubuntu 的 Universe 和 multiverse 存储库)。
安装所需的包“p7zip-rar”,该包将另外包含“p7zip-full”作为包依赖项之一;根本不需要另一个包“p7zip” 。
sudo apt-get install p7zip-rar
Run Code Online (Sandbox Code Playgroud)
然后运行 7z 命令来解压 RAR 文件。
7z x filename.rar
Run Code Online (Sandbox Code Playgroud)
简短说明:p7zip提供的7zr命令只能处理 7z 档案。的p7zip满提供7z的命令,可以处理更多的支持格式和的p7zip-RAR需要7z处理RAR压缩文件。
请注意以下用例:
7zr和7za命令将不起作用,只有7z命令才能使用 RAR 格式。ArchWiki上的p7zip指出了 7z、7za 和 7zr 二进制文件之间的区别。7z可以与任何受支持的图形文件归档器一起使用,包括file-roller、ark、xarchiver、engrampa。只需安装一个受支持的存档管理器即可通过图形界面使用 p7zip,无需进一步配置。p7zip (9.20) 的示例输出无法测试打开 RAR 文件 (Rar5):
$ 7z t sample.rar
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)
Processing archive: sample.rar
Error: Can not open file as archive
Run Code Online (Sandbox Code Playgroud)
p7zip (16.02) 的示例输出成功测试打开 RAR 文件 (Rar5):
$ p7zip_16.02/bin/7z t sample.rar
7-Zip [32] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,32 bits,1 CPU Intel(R) Celeron(R) M processor 1.60GHz (6D8),ASM)
Scanning the drive for archives:
1 file, 483579957 bytes (462 MiB)
Testing archive: sample.rar
--
Path = sample.rar
Type = Rar5
Physical Size = 483579957
Solid = -
Blocks = 5
Encrypted = -
Multivolume = -
Volumes = 1
Everything is Ok
Files: 5
Size: 498584235
Compressed: 483579957
Run Code Online (Sandbox Code Playgroud)
p7zip (16.02) 的后一个输出包含Type = Rar5指示 RAR 版本 5的行。该file命令可能包含与RAR 版本相似但不太易读的信息。
$ file *.rar
sample4.rar: RAR archive data, v1d, os: Unix
sample.rar: RAR archive data, va6, flags: Archive volume, Commented, Locked, os: Unix
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下旧的 RAR 文件 (Rar) 已包含在内,v1d而新的 RAR 文件 (Rar5) 已包含va6在每个文件的描述中。到目前为止,没有相关信息来确定文件描述是否对应于 RAR 版本。
TL;DR p7zip 可以打开 RAR 文件,前提是使用包 (p7zip-rar)、命令 (7z) 和更新的版本(支持 Rar5 的 16.02+)来处理 RAR 格式。
回答者注:这个自我回答 - 大约 18 个月后 - 将被接受并作为社区维基。如果缺少任何信息,任何声誉最低的人都可以编辑以使此答案更完整。