No Linux (por exemplo, Mac OS X), isso é muito fácil com um script de shell.
Supondo que suas unidades USB (e somente suas unidades USB) estejam montadas em /media
, você pode usar um loop for simples:
for device in /media/*; do
// copy instructions here
// e.g., cp file "$device"
done
Se você tiver 10 slots USB, isso permitirá processar 10 unidades de uma só vez.
O loop for acima copiará os arquivos sequencialmente, ou seja, ele processará o primeiro flash drive e depois iniciará o segundo. Se você precisar copiar uma grande quantidade de dados, também poderá copiar os arquivos em paralelo:
unset PIDS
for device in /media/*; do
// a single copy instruction here
// e.g., cp file1 file2 file 3 "$device" &
done
wait
O e comercial após a instrução copy faz com que seja executado em segundo plano, ou seja, o restante do loop for é executado imediatamente. O comando wait
atrasa o script até que todos os processos em segundo plano sejam concluídos.