.RAR 파일을 일괄 추출하고 다시 패키지합니다.

.RAR 파일을 일괄 추출하고 다시 패키지합니다.

저는 암호를 제거하기 위해 다시 압축해야 하는 많은 수의 암호로 보호된 .rar 파일을 작업하고 있습니다. (비밀번호는 알고 있습니다.) 이전과 동일한 이름과 디렉터리 구조를 유지하면서 일괄/반복적으로 추출하고 다시 패키징할 수 있는 스크립트가 있는지 궁금합니다.

답변1

이 작업을 두 부분으로 나누겠습니다. 첫 번째 부분은 rerarrar을 추출 및 빌드하고 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 아카이브를 다시 만드는 것이므로 간단한 솔루션을 선택했습니다.

관련 정보