Crie arquivos 7z separados para cada diretório no diretório atual e paralelize adicionalmente através do GNU Parallel

3

Tenho cerca de duzentos subdiretórios localizados em um diretório de interesse:

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

Eu quero criar um arquivo 7z xyz.7z para cada diretório xyz :

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

Então, no final, eu terei esses arquivos em 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

Além disso, quero usar parallel para processar cinco diretórios por vez. (Eu tenho poder de computação suficiente para esse propósito)

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

Como posso juntar tudo isso?

    
por vivoru 18.07.2018 / 12:23

1 resposta

3

Use a seguinte abordagem:

ls backup | parallel -j5 7z a -mmt=4 "storage/nas/TBL/compressed_backups/{}.7z" {} 
  • {} - linha de entrada. Esta string de substituição será substituída por uma linha completa lida da fonte de entrada.
por 18.07.2018 / 13:23