为当前目录中的每个目录创建单独的 7z 存档,并通过 GNU Parallel 进行额外并行化

为当前目录中的每个目录创建单独的 7z 存档,并通过 GNU Parallel 进行额外并行化

我感兴趣的目录中有大约 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一次处理五个目录。 (我有足够的计算能力用于此目的)

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" {} 
  • {}- 输入线。该替换字符串将被从输入源读取的整行替换。

相关内容