アーカイブ名をフォルダ名として使用して、マルチスレッド方式で複数の7zアーカイブを独自のフォルダに抽出する方法は?

アーカイブ名をフォルダ名として使用して、マルチスレッド方式で複数の7zアーカイブを独自のフォルダに抽出する方法は?

アーカイブ名をフォルダー名として使用してすべての7zアーカイブを独自のフォルダーに抽出するには、次のコマンドを実行します。

7z x "*.7z" -o*

a.7zたとえば、2つのファイルとがある場合とb.7zフォルダがa作成されます。これにはそれぞれとその内容が含まれます(ディレクトリ構造を保持)。ba.7zb.7z

時には7zアーカイブが多すぎるため、複数のコアを使用してそれらを抽出したい場合があります。私はこれを読んだ回答渡すアルトゥーンS.タシュキノフ:

7z 解凍はシングルスレッドなので、圧縮形式の制限です。

parallelだから私の場合は7zアーカイブが複数あるのでそれを使うつもりです。

私は試した:

parallel -j4 '7z x {} -o{}' ::: *.7z

a.7zただし、2つのファイルとのある例に戻ると、b.7zコマンドはa.7z2つのファイルsumをandの代わりにsumb.7zフォルダに抽出しようとしますa.7z。これにより、sumがすでにインポートされていてファイルであるため、実行が中断されます。この問題をどのように解決できますか? 2つのフォルダと。b.7zaba.7zb.7zab

それが重要な場合は、Ubuntuを使用してください。

ベストアンサー1

parallel{.}代わりに、以下を指定すると拡張機能が削除されます{}

parallel -j4 '7z x {} -o{.}' ::: *.7z

おすすめ記事