web-dev-qa-db-ja.com

現在のディレクトリ内のディレクトリごとに個別の7zアーカイブを作成し、さらにGNU Parallel

関心のあるディレクトリ内に約200のサブディレクトリがあります。

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

7zアーカイブを作成したいxyz.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

さらに、一度に5つのディレクトリを処理するために、parallelを使用したいと思います。 (私はこの目的のために十分な計算能力を持っています)

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

どうすればこれをすべてまとめることができますか?

3
vivoru

次のアプローチを使用します。

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