批量提取和重新打包 .RAR 文件

批量提取和重新打包 .RAR 文件

我正在处理大量受密码保护的 .rar 文件,需要重新打包才能删除密码。 (密码是已知的。)我想知道是否有一个脚本可以批量/递归地提取和重新打包它们,同时保持与之前相同的名称和目录结构。

答案1

我会将此任务分为两个部分,第一个部分是您需要一个脚本rerar来提取和构建 rar 并将 rar 的名称作为参数:

#!/bin/bash

R="$PWD"/"$1"     # if realpath is available you can use  R=$(realpath "$1") 
tmpdir=$(mktemp -d --suff rerar)
pushd "$tmpdir"
# extract preserving directory structure of the archive
# replace YOUR_PASS_WORD in the next line, with no space after "-p"!
unrar x -pYOUR_PASS_WORD "$R"     
# backup the rar file, optional
mv "$R" "$R".org
# re-create recursively going over the files here
rar a -r "$R" .
popd
rm -rf "$tmpdir"

现在您只需在所有涉及的 rar 文件上运行此命令,例如使用find

find . -name "*.rar" -exec ./rerar {} \;

它不如调用具有多个参数的脚本那么有效,但这里耗时的操作是重新创建 rar 存档,这就是我选择简单解决方案的原因。

相关内容