Shell-Script

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

  • June 1, 2015

我正在處理大量受密碼保護的 .rar 文件,這些文件需要重新打包以刪除密碼。(密碼是已知的。)我想知道是否有一個腳本可以批量/遞歸地提取和重新打包它們,同時保持與以前相同的名稱和目錄結構。

我會把這個任務分成兩個元素,第一個是你需要一個腳本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 存檔,這就是我選擇簡單解決方案的原因。

引用自:https://unix.stackexchange.com/questions/206682