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 se está acostumbrando a usar el terminal.

Sin embargo, mientras espera convertirse en un usuario avanzado de Linux, aprender a lo que yo llamaría "comandos de acceso directo" puede reducir significativamente las tendencias de pérdida de tiempo.

En este artículo, explicaremos una manera fácil, usando un solo comando para copiar un archivo en múltiples directorios en Linux.

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

# cp [options….] source(s) destination

Alternativamente, también puede usar archivos/carpetas grandes en Linux.

Considere los comandos a continuación, 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 se 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 : se utiliza 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 en relación con el tema o cualquier comentario a través del formulario de comentarios a continuación. Es posible que también desee leer sobre los comandos tar, etc.) que se están ejecutando actualmente en Linux.