Extrair em lote e reempacotar arquivos .RAR

2

Estou lidando com uma grande quantidade de arquivos .rar protegidos por senha que precisam ser reembalados para remover a senha. (A senha é conhecida.) Eu queria saber se havia um script para lote / recursivamente extrair & reembale-os mantendo o mesmo nome e estrutura de diretórios que eles tinham antes.

    
por AwesomeMarioFan 31.05.2015 / 19:55

1 resposta

1

Eu dividiria essa tarefa em dois elementos, o primeiro é que você precisa de um script rerar que extraia e construa o rar e considere o nome de um rar como parâmetro:

#!/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"

Agora, você só precisa executar isso em todos os arquivos RAR envolvidos. usando find

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

Não é tão eficiente quanto chamar o script com vários parâmetros, mas aqui a ação de consumação de tempo está recriando o arquivo rar, é por isso que optei pela solução simples.

    
por 31.05.2015 / 20:43