Mejor manera de copiar múltiples directorios a un nuevo directorio

33

¿Hay una mejor manera en la línea de comando para lograr esencialmente lo siguiente pero con un solo comando

cp -r css/ ar/
cp -r images/ ar/
cp -r js/ ar/
cp -r backups/ ar/

Acabo de unirlos con un punto y coma.

Jeff Schaller
fuente

Respuestas:

63

Copiar carpetas en otra carpeta (carpeta en carpeta):

cp -r css images js backups ar/

Nota: esto es diferente de copiar solo el contenido en sí (contenido de las carpetas en la carpeta):

cp -r css/ images/ js/ backups/ ar/
porton
fuente
44
¡Las barras hacen la diferencia! siempre sospechado, nunca lo supe
Peter Perháč
2
Las barras no marcan la diferencia en mis pruebas. cpno es rsync. sin embargo cp -r css/. images/. ar/, copia los contenidos sin los directorios. mi versión cp es "cp (GNU coreutils) 8.29".
sourcejedi
1

La respuesta es simple, y funciona en Debian "así es como lo hice" (probado), digamos que estás en / etc y quieres copiar algunos archivos y carpetas antes de formatear tu disco duro (por alguna razón) Escribe lo siguiente y todo lo que se menciona a continuación se copiará en la carpeta / mybackups / :

sudo cp -r -a apt/ bash.bashrc environment hosts init.d/ init/ nginx/ proxychains.conf sudoers sysctl.d/ profile.d/ grub.d/ /boot/grub/ /opt/ /root/ /var/www/ /mybackups/

Como puede ver arriba, traté de copiar carpetas desde el exterior, etc. , señalando su ubicación como / boot / grub / u / opt / y funcionó.

M03
fuente
1
Creo que -r no es necesario, ya que -a ya lo contiene (a través de: man).
David Potočnik
-2

No puede copiar dos directorios usando cpsolo el comando.

Sin -rembargo, puede copiar recursivamente usando la opción.

Por ejemplo:

cp -r <source> <destination> 
suman
fuente