Búsqueda de sitios web

Cómo copiar un archivo a varios directorios en Linux


Mientras aprenden Linux, siempre es la norma que los principiantes sigan escribiendo varios comandos para realizar una tarea sencilla. Esto es comprensible, especialmente cuando uno recién se está acostumbrando a usar el terminal.

Sin embargo, si desea convertirse en un usuario avanzado de Linux, aprender lo que yo llamaría “comandos de acceso directo” puede reducir significativamente la tendencia a perder el tiempo.

En este artículo, explicaremos una manera sencilla de copiar un archivo en varios directorios en Linux con un solo comando.

En Linux, el comando cp se usa para copiar archivos de un directorio a otro, la sintaxis más sencilla para usarlo es la siguiente:

cp [options….] source(s) destination

Alternativamente, también puede usar el comando de copia avanzada, que muestra una barra de progreso mientras copia archivos/carpetas grandes en Linux.

Considere los siguientes comandos; normalmente, escribiría dos comandos diferentes para copiar el mismo archivo en dos directorios separados de la siguiente manera:

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

Suponiendo que desea copiar un archivo en particular en hasta cinco o más directorios, ¿esto significa que tendría que escribir cinco o más comandos cp?

Para solucionar este problema, puede emplear el comando echo, un comando pipe, xargs junto con el comando cp en el siguiente formulario:

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

En el formulario anterior, las rutas a los directorios (dir1,dir2,dir3…..dirN) se repiten y canalizan como entrada al comando xargs donde:

  1. -n 1: le dice a xargs que use como máximo un argumento por línea de comando y lo envíe al comando cp.
  2. cp – utilizado para copiar un archivo.
  3. -v: habilita el modo detallado para mostrar detalles de la operación de copia.

Intente leer las páginas de manual de los comandos cp, echo y xargs para encontrar información de uso útil y avanzada:

man cp
man echo
man xargs

Eso es todo, puede enviarnos preguntas relacionadas con el tema o cualquier comentario a través del formulario de comentarios a continuación. Quizás también quieras leer sobre el comando de progreso que ayuda a monitorear el progreso de (cp, mv, dd, tar, etc.) comandos que se ejecutan actualmente en Linux.