Bem, isso é ruim porque cp can copy multiple sources but cannot copy to multiple destinations
é o que você precisa. Para que isso funcione, você invocou o cp várias vezes - uma vez por destino que você já tentou. O que você quer pode ser realizado por
1. Usando para loop
for i in /a/c/ a/d/ a/e/; do cp "$file" "$i"; done
Isso é bem auto-explicativo.
2. combinando cp
com xargs
:
$ echo dir1 dir2 dir3 | xargs -n 1 cp file1
Copiará o arquivo1 para dir1, dir2 e dir3. xargs irá chamar cp 3 vezes para fazer isso. xargs
invocará cp
3 vezes e copiará o arquivo1 para dir1, dir2 e dir3 em chamadas sucessivas.
No seu caso, será
$ echo /a/c/ a/d/ a/e/ | xargs -n 1 cp /a/b/file
Para mais detalhes sobre xargs, consulte página de manual .