.RARファイルを一括抽出して再パッケージ化します。

.RARファイルを一括抽出して再パッケージ化します。

私はパスワードを削除するために再圧縮する必要がある多くのパスワードで保護された.rarファイルを扱っています。 (パスワードはわかっています。)以前と同じ名前とディレクトリ構造を維持しながら、一括/繰り返し抽出して再パッケージできるスクリプトがあるかどうか疑問に思います。

ベストアンサー1

これを2つの部分に分けましょう。最初の部分は、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アーカイブを再作成するため、単純なソリューションを選択しました。

おすすめ記事