Cómo copiar un archivo a varios directorios usando el comando gnu cp

Resuelto Tom Feiner asked hace 15 años • 22 respuestas

¿Es posible copiar un solo archivo a varios directorios usando el comando cp?

Intenté lo siguiente, que no funcionó:

cp file1 /foo/ /bar/
cp file1 {/foo/,/bar}

Sé que es posible usar un bucle for o buscar. ¿Pero es posible usar el comando gnu cp?

Tom Feiner avatar Oct 12 '08 23:10 Tom Feiner
Aceptado

No puedes hacer esto cpsolo pero puedes combinarlo cpcon xargs:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Se copiará file1a dir1, dir2y dir3. xargsLlamará cp3 veces para hacer esto; consulte la página de manual para xargsobtener más detalles.

Robert Gamble avatar Oct 12 '2008 20:10 Robert Gamble

No, cppuede copiar varias fuentes pero solo copiará a un único destino. Debe programar la invocación cpvarias veces (una por destino) para lo que desea hacer; usando, como usted dice, un bucle o alguna otra herramienta.

moonshadow avatar Oct 12 '2008 16:10 moonshadow

Los comodines también funcionan con el código de Roberts.

echo ./fs*/* | xargs -n 1 cp test 
Paul avatar Jan 26 '2011 10:01 Paul

Usaría caty teesegún las respuestas que vi en https://superuser.com/questions/32630/parallel-file-copy-from-single-source-to-multiple-targets en lugar de cp.

Por ejemplo:

cat inputfile | tee outfile1 outfile2 > /dev/null
deterb avatar Jan 30 '2012 21:01 deterb