Cómo copiar un archivo a varios directorios en Linux


Mientras aprende Linux, siempre es normal que los novatos sigan escribiendo varios comandos para realizar una tarea simple. 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 me referiría como "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 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 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 eliminar este problema, puede emplear el comando echo, un comando pipe , xargs junto con el comando cp en el formulario a continuación:

# 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 – tells xargs to use at most one argument per command line and send to the cp command.
  2. cp – used to copying a file.
  3. -v – enables verbose mode to show details of the copy operation.

Intente leer las páginas man 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. También puede leer el comando de progreso que ayuda a controlar el progreso de ( cp , mv , dd , tar, etc.) comandos que se ejecutan actualmente en Linux.