.lzoファイルを並列に抽出し、元の.lzoファイルを削除します。

.lzoファイルを並列に抽出し、元の.lzoファイルを削除します。

したがって、そのフォルダ.lzo内のファイルを解凍/test01/primaryしてすべてのファイルを削除する必要があります。.lzoフォルダでも同じことをする必要があります。両方のフォルダに約150個のファイルがあるため、合計300個のファイルがあります。/test02/secondary.lzo

コマンドラインで次のように実行して、1つのファイルを解凍します。lzop -d file_name.lzo
すべてのファイルを解凍し、両方のフォルダからすべてのファイルを削除する最速の方法は何ですか?私は次のコードを思いついた。.lzo.lzo

#!/bin/bash

set -e

export PRIMARY=/test01/primary
export SECONDARY=/test02/secondary

lzop -d $PRIMARY/* & lzop -d $SECONDARY/*
find $PRIMARY $SECONDARY -name '*.lzo' -delete

.lzoまた、ファイルを同時に解凍し、.lzo両方のフォルダ内のすべてのファイルを同時に削除してプロセスを高速化することもできます。もっと良い方法がありますか?

ベストアンサー1

マニュアルページによると:

   -U, --unlink, --delete
              Delete input files after succesful compression or decompression.

だからあなたは単に実行することができます

lzop -dU -- {"$PRIMARY","$SECONDARY"}/*.lzo

lzo抽出が成功したらすぐに各ファイルを削除します。
lzopシングルスレッドなので、並列処理が必要な場合は、次のものを使用できますgnu parallel

parallel lzop -dU -- ::: {"$PRIMARY","$SECONDARY"}/*.lzo

おすすめ記事