¿Cómo puedo copiar archivos en una carpeta en otra carpeta en Linux Terminal?

¿Cómo puedo copiar archivos en una carpeta en otra carpeta en Linux Terminal?
Cuando necesita copiar el contenido de un directorio en otro, en el caso de Linux, hay muchas herramientas a su disposición. Cual usar? Depende de la situación y la preferencia personal. En este artículo, veremos formas en que puede copiar contenido del archivo de una carpeta a otra en el terminal. Presentará algunas de las opciones populares para diferentes situaciones.

Copia de archivo en terminal

Copiar el contenido de un directorio en otro es una tarea muy simple. Sin embargo, tienes muchas opciones de hacerlo. Linux está bendecido con numerosas herramientas para manipular archivos y directorios a través de varias acciones.

Todos los pasos se demuestran en Ubuntu 18.04.1. Al principio, creemos un puñado de archivos ficticios para trabajar con.

$ mkdir -v dir_a

Ahora, creemos los archivos ficticios usando Touch.

$ Touch Dummy 1 ... 10

Creemos otra carpeta dentro de Dir_a con un puñado de archivos ficticios.

$ mkdir -v dir_b
$ Touch Dummy 1 ... 10

Ahora, toda la estructura del directorio dir_a se ve así.

$ árbol dir_a

Comando CP

El CP El comando es, con mucho, la herramienta más común para copiar archivos. Es una herramienta que viene de forma predeterminada con cualquier sistema de Linux. Copiar archivos y directorios es el único propósito de CP. Admite una amplia gama de características.

Esta es la estructura básica del CP dominio.

$ CP

Por ejemplo, hagamos una copia del ficticio presentar con el nombre dummy1_copy.

$ CP Dummy1 Dummy1_Copy

Ahora, intentemos copiar varios archivos a la vez. Para dicha operación, CP requiere que el destino sea un directorio. Aquí, usaré la expresión de comodín para agarrar todo el ficticio archivos y ponerlos en el ~/Descargas directorio.

$ CP Dummy* ~/Descargas

¿Qué tal copiar un directorio??

$ cp -vr dir_a dir_a_copy

Aquí, usamos dos banderas diferentes. Tengamos un desglose rápido de ellos.

  • -R: significa un recursivo Copiar (incluidos los archivos ocultos). Bandera imprescindible si la copia implica un directorio completo o más.
  • -V: significa verboso. La herramienta CP emitirá cada acción que esté realizando.

Quiero seguir los enlaces simbólicos? Agregue la bandera "-l".

$ cp -lvr

Digamos que el directorio de destino ya tiene un archivo con el mismo nombre. Si desea evitar sobrescribir, use la bandera "-n". Asegurará que en caso de conflicto, CP no sobrescribirá el archivo.

$ cp -nv

Si está realizando una acción sensible de copia/pegar, es mejor tener el mejor control sobre lo que sucede, correcto? En tal caso, use la bandera "-i". Significa un modo interactivo en el que CP solicitará confirmación cada vez que surja un conflicto.

$ cp -i

Si está más interesado, la página del hombre es siempre una de las mejores documentos. Obtenga más información sobre CP.

$ hombre CP

comando mv

La herramienta MV es similar a la herramienta CP. Sin embargo, en lugar de copiar, MV mueve archivos y directorios. En comparación con CP, es más simple.

La estructura de comando de MV es similar a CP.

$ MV

Para mover el contenido de dir_a a dir_a_copy, Ejecutar el siguiente comando.

$ mv -v dir_a/ dir_a_copy

Aquí, la bandera "-v" es para verboso modo. Si desea mover solo el contenido de Dir_a, use el siguiente en su lugar. En este caso, el directorio de destino debe existir de antemano.

$ mv -v dir_a/* dir_a_copy

La herramienta MV no tiene mucho con qué trabajar. Para ver todas las opciones disponibles, consulte la página del hombre.

$ hombre MV

Comando RSYNC

Esta es una de las herramientas más populares y potentes para la copia de archivos, utilizadas principalmente para la copia de seguridad. Contiene la capacidad de copiar archivos a través de una conexión remota. A diferencia de CP y MV, también viene con una tonelada de opciones avanzadas de copia de archivos que ofrecen la máxima personalización de su comportamiento.

RSYNC es principalmente famoso por su algoritmo Delta-Transfer que reduce drásticamente la cantidad de datos que deben intercambiarse. En el caso de la sincronización remota, esto ahorra mucho ancho de banda.

RSYNC generalmente no viene preinstalado en ninguna distribución de Linux. Sin embargo, debido a su popularidad, ahora está disponible en todas las principales distribuciones de Linux. Use PKGS.org para averiguar el paquete RSYNC para su distribución. Suponiendo que haya instalado RSYNC, comencemos.

Primero, la estructura de comando básica de RSYNC. Es bastante similar a CP.

$ rsync

Antes de comenzar, aquí hay un puñado de argumentos populares de RSYNC.

  • -V: Modo detallado, sale cualquier acción que se realice en la pantalla de la consola.
  • -VV: Modo detallado con más detalles
  • -riñonal: Modo recursivo, debe estar presente si copiar directorios
  • -z: Datos de comprimir
  • -a: Datos de archivo
  • -norte: Dry Run, se debe ejecutar en combinación con el modo detallado. Simplemente emite las acciones si el comando se ejecutara para
  • -borrar: Eliminar los archivos y el directorio (s) en el directorio de destino si el directorio de origen ya no los contiene
  • -no plantilla: Obliga a RSYNC a usar su algoritmo de transmisión delta, sin importar qué. Útil en escenarios en los que debe garantizar la menor cantidad de datos de escritura.
  • -eliminar el archivo de fuente: Eliminar los archivos fuente después de copiar.

Vamos a verlos en acción. Primero, la copia del directorio. Ejecutar el siguiente comando.

$ rsync -vr dir_a/ dir_a_copy

Para una salida más detallada, usemos el indicador "-VV".

$ rsync -vv -r dir_a/ dir_a_copy

Ahora, vamos a ver la parte genial de rsync. Discutimos cómo RSYNC copia de manera inteligente solo los archivos que se modifican, guardando el ancho de banda y la escritura de disco. Es hora de verlo en acción. En este ejemplo, la acción se realizará dentro del dir_a directorio.

$ RSYNC -VV--No-Whole-File Dummy* Dir_b/

A pesar de la transmisión delta-transmisión habilitada, RSYNC puede no aplicarlo cuando realiza la transferencia de datos locales.

Ahora, vamos a ver la función de ejecución seca. Antes de ejecutar cualquier comando RSYNC de verdad, siempre es importante que lo pruebe de antemano. Aquí es donde entra la carrera seca. RSYNC generará lo que sucederá si el comando se ejecutara realmente.

$ rsync -anvr dir_a/ dir_a_copy

RSYNC también puede funcionar con directorios remotos, no hay problema. Todo lo que necesita es una conexión SSH adecuada con las teclas SSH configuradas.

$ rsync

Desea realizar una operación de movimiento? Para poner eso en la perspectiva de RSYNC, RSYNC copiará el contenido del directorio de origen y luego elimine el contenido de origen.

$ RSYNC -V--Remove-Source-Files

Consulte el resultado de la operación.

$ árbol dir_a
$ árbol dir_a_copy

Pensamientos finales

CP y RSYNC son las herramientas más comunes que puede usar para copiar archivos en una carpeta en el terminal de Linux. Ambos también son realmente buenos para las secuencias de comandos. Solo asegúrese de probar las funciones antes de la implementación.

Disfrutar!