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.
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.
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!