GNU parallel :
parallel -j10 -n100000 --no-notice -k 'mkdir -p dir_{#}; mv {} -t dir_{#}' ::: *
-
j N- número de jobslots. Execute atéNjobs em paralelo. No seu caso, executaremos 10 jobs para distribuir (mover) todos os diretórios entre os novos 10 diretórios pai -
-n100000- use no máximo100000arguments (dirnames) por linha de comando -
{#}- número de sequência do trabalho a ser executado. Esta sequência de substituição será substituída pelo número de sequência do job que está sendo executado -
::: arguments- useargumentsda linha de comando como fonte de entrada em vez de stdin (entrada padrão)
Para processar diretórios (dirnames) classificados por hora de modificação - use o seguinte pipeline:
ls -dtr * | parallel -j10 -n100000 --no-notice -k 'mkdir -p dir_{#}; mv {} -t dir_{#}'