Cómo copiar un archivo a varios directorios con un comando en Linux

Copiar un archivo con la línea de comandos de Linux es fácil. Sin embargo, ¿qué sucede si desea copiar el mismo archivo en varias ubicaciones diferentes? Eso también es fácil y le mostraremos cómo hacerlo con un comando.

Normalmente, para copiar un archivo, usaría el cpcomando, vinculando al archivo de origen y al directorio de destino:

cp ~ / Documentos / FileToBeCopied.txt ~ / TextFiles /

Para copiarlo en dos directorios más, muchas personas simplemente ejecutarían el comando dos veces más, con diferentes destinos:

cp ~ / Documentos / FileToBeCopied.txt ~ / Dropbox /
cp ~ / Documentos / FileToBeCopied.txt / media / lori / MYUSBDRIVE /

Sin embargo, podemos hacer la misma tarea con un comando:

echo dir1 dir2 dir3 | xargs -n 1 archivo cp1

Así es como funciona este comando. El echocomando normalmente escribe en la pantalla. Sin embargo, en este caso, queremos alimentar la salida del echocomando como entrada al xargscomando. Para hacer esto, usamos el símbolo de tubería ( |) que alimenta la salida de un comando como entrada a otro. El xargscomando ejecutará el cpcomando tres veces, y cada vez agregará la siguiente ruta de directorio conectada desde el echocomando hasta el final del cpcomando. Se le pasan tres argumentos xargs, pero la -n 1opción del xargscomando le dice que solo agregue uno de esos argumentos a la vez al cpcomando cada vez que se ejecuta.

Entonces, para seguir con nuestro ejemplo anterior, los tres cpcomandos separados anteriores se pueden combinar en un comando como este:

echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Documentos / FileToBeCopied.txt

Tenga en cuenta que si el archivo que se copia existe en cualquiera de los directorios de destino especificados, el archivo de ese destino se reemplazará automáticamente. No se le preguntará si desea reemplazar el archivo. (Normalmente, cuando usa el cpcomando para copiar un archivo en una sola ubicación, puede agregar la -iopción para preguntar si desea reemplazar un archivo existente. Sin embargo, la -iopción es una opción interactiva (hace que el cpcomando solicite datos de entrada del usuario) y no puede usar una opción interactiva con el cpcomando cuando lo usa junto con xargs.)

Otra cosa a considerar es que si está copiando un archivo muy grande, es posible que desee agregar la -nopción no-clobber ( ) al cpcomando en el comando único anterior. Esta opción evita automáticamente que se sobrescriba un archivo en un destino si ya existe allí. Si está copiando un archivo muy grande en una red, puede ser lento y es posible que desee evitar el uso de los recursos necesarios para copiar y reemplazar el archivo. El siguiente comando agrega la -nopción y no copiará el archivo a ningún destino listado en los argumentos de la declaración de eco, si el archivo ya existe en ese destino.

echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documentos / FileToBeCopied.txt

Escriba man echo , man xargs o man cp en la línea de comandos en Linux para obtener más información sobre cualquiera de estos comandos.

responroot

Entradas recientes

Steamlytics: La nueva herramienta imprescindible para los gamers de Steam

  El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…

1 año hace

Cuándo reemplazar su antigua unidad flash USB

Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…

3 años hace

¿Qué es una pantalla Nano IPS?

LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…

3 años hace

10 formas de jugar con un presupuesto bajo (o nulo)

Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…

3 años hace

¿Demasiadas suscripciones? Aquí está cómo empezar a cortarlos

Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…

3 años hace

Cómo configurar la puerta de enlace predeterminada en Linux

fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…

3 años hace