GNU Parallel による追加の並列化により、現在のディレクトリの各ディレクトリに対して別々の 7z アーカイブを作成します。

GNU Parallel による追加の並列化により、現在のディレクトリの各ディレクトリに対して別々の 7z アーカイブを作成します。

私が興味のあるディレクトリには約200のサブディレクトリがあります。

$ ls backup
201302
201607
201608
201609
201610
201701
201702
201705
201801
201802

xyz.7z各ディレクトリごとに7zアーカイブを作成したいと思いますxyz

cd $HOME/backup/
7z a "storage/nas/TBL/compressed_backups/$xyz.7z" "$xyz" -mmt=4

だから最終的に私はこれらのファイルを次の場所に置きますstorage/nas/TBL/compressed_backups

201302.7z
201607.7z
201608.7z
201609.7z
201610.7z
201701.7z
201702.7z
201705.7z
201801.7z
201802.7z

parallelまた、.process 5つのディレクトリを一度に使用したいと思います。 (私はこの目的のために十分なコンピューティング能力を持っています)

parallel -j5 ::: 7z a "storage/nas/TBL/compressed_backups/$xyz.7z" "$xyz" -mmt=4

これらすべてをどのように仕上げることができますか?

答え1

次の方法を使用します。

ls backup | parallel -j5 7z a -mmt=4 "storage/nas/TBL/compressed_backups/{}.7z" {} 
  • {}- 入力ライン。置換文字列は、入力ソースから読み取られた行全体に置き換えられます。

関連情報