Eu sei pouco sobre o Mac OSX, ainda acredito que suas ferramentas padrão são semelhantes às do Linux.
Se fosse para Linux / Bash, eu tentaria:
tar -c /source/dirA/ /source/file1 | tee >(cd /foo/destination3/ && tar -x) >(cd /bar/destination2/ && tar -x) >(cd /foobar/destination1/ && tar -x) > /dev/null
Todo destino receberá dirA/
e file1
. Você pode fornecer mais argumentos ao primeiro tar
(diretórios ou arquivos). Para adicionar outro destino, basta colocar o argumento tee
adicional de maneira semelhante.
Como isso funciona? Primeiro tar
converte diretórios e arquivos em um único fluxo de bits que pode ser usado em um pipe. O comando tee
bifurca esse fluxo; cada cópia, exceto uma, é extraída por tar
no destino correto. A última cópia se move pelo cano; é descartado em /dev/null
. (Pode-se usar a última cópia para destination0
, mas a sintaxe seria diferente, então decidi mantê-la simples com tee
apenas).
O código é um ponto de partida. Você pode precisar ajustá-lo para trabalhar com o OSX.