如何解压嵌套的 RAR 文件?

如何解压嵌套的 RAR 文件?

我有一个递归目录结构,其中包含很多 RAR 文件。我一直在使用此unrar命令将所有包含的文件提取到当前工作目录中:

unrar e -r -o- *.rar

这可以。然而,某些 RAR 文件包含其他 RAR 文件,这些文件是通过上述命令提取的。问题是这些提取的 RAR 文件的内容不会被提取,因为提取的 RAR 不是初始搜索的一部分。

这件事该怎么办呢?我不想删除 RAR 文件的第一部分并进行新的搜索。我对 Bash 不太流利(或者#!/bin/sh -xu这是脚本的 shebang),但我想我想保存第一个搜索的文件名并在第二个命令中排除它们。 (最大深度是RAR中的RAR。)是否有更优雅的解决方案?

提前谢谢你,维克托。

编辑:

尝试@icarus提出的解决方案:

mkdir unrar
cd unrar
unrar e -r -o- ../*.rar
set -- *.rar
[ -e "$1" ] && unrar e -r -o- *.rar

答案1

使用 shell(或 find)查找 rar 档案。将第一组解压到新目录中,然后解压该目录中的所有组。

#!/bin/bash
shopt -s nullglob globstar
mkdir unrar
cd unrar
for i in ../**/*.rar ; do unrar e -o- "$i" ; done
for i in **/*.rar ; do unrar e -o- "$i" ; done

相关内容