En Linux, copiamos archivos como lo hacemos en cualquier otro sistema operativo disponible en la actualidad. Abrimos un administrador de archivos, seleccionamos un archivo para copiar y lo pegamos donde queramos. Pero, ¿qué sucede si desea o necesita copiar archivos o directorios en Linux a través de la línea de comandos o aplicar algunos filtros adicionales antes de copiar? Bueno, eso es fácil.
Copiar archivos o directorios localmente
Si necesita copiar archivos o directorios localmente de un directorio a otro, hay un comando simple para eso:cp.
cp – Copiar archivos y directorios
Sintaxis básica
cp source destination_path
La sintaxis básica del comando acepta dos argumentos, el primero es la ruta del archivo o directorio, y el segundo es la ruta de destino donde desea copiar el archivo o directorio. En cualquier sistema Linux, este comando funcionará perfectamente, pero puede haber casos en los que deba conocer algunas opciones importantes que proporciona el comando cp.
–copia de seguridad[opción]
A menudo necesitamos copiar tantos archivos a la vez en una ubicación donde algunos de estos archivos ya existen. En ese escenario, el comportamiento predeterminado del comando cp sobrescribirá todos los archivos existentes. Esto podría ser problemático si los archivos contienen datos diferentes dentro de ellos.
En ese caso, podemos usar la opción –backup y decirle al comando cómo hacer una copia de seguridad de cada archivo existente en el directorio de destino.
cp -v --backup myphotos Downloads/allphotos
El comando anterior copiará todos los archivos de myphotos al directorio allphotos dentro del directorio de Descargas. Si el directorio allphotos ya contiene alguno de los archivos que transferimos desde myphotos, creará una copia de seguridad de ese archivo. Otra característica importante del comando cp es que puede realizar un seguimiento de las versiones de copia de seguridad.
El comando anterior cambiará el nombre del archivo de copia de seguridad al nombre de archivo original + '`' al final.
Realice un seguimiento de las versiones de las copias de seguridad
Las opciones de copia de seguridad vacías crean una copia de seguridad de cada archivo en el directorio de destino, y si intenta copiar el archivo nuevamente, el comando reemplazará los archivos de copia de seguridad existentes con los nuevos archivos de copia de seguridad. Si desea conservar los archivos de copia de seguridad existentes y crear uno nuevo cada vez que intente copiar archivos en el mismo directorio, puede pasar la opción 'numerada' o 't' a -copia de seguridad.
La opción numerada creará archivos de respaldo y agregará un número de respaldo al final de cada archivo de respaldo. Aquí hay un comando de ejemplo –
cp -rv --backup=numbered myphotos Downloads/allphotos
El comando anterior copiará todos los archivos nuevos en el directorio de destino, y se realizará una copia de seguridad de los archivos duplicados y se reemplazarán con los archivos nuevos. Cada archivo de respaldo tendrá un número de versión agregado al nombre del archivo.
Actualizar archivos
Una de las opciones más útiles del comando cp es '-u'. Esto solo copia los archivos más nuevos en el destino y deja el resto. Por ejemplo, si un archivo ya existe en el directorio de destino, la opción '-u' comparará ambos archivos y solo copiará si el archivo copiado es más nuevo que el que ya existe.
cp -rv -u myphotos Downloads/allphotos
Copiar atributos de archivos únicamente (–attributes-only)
Si desea crear archivos con algunos de los atributos de los archivos existentes, puede pasar el argumento –solo atributos. Creará archivos en el destino dado con los mismos atributos y no datos. Aquí hay un ejemplo –
cp -rv --attributes-only myphotos Downloads/allphotos
Preguntar antes de sobrescribir cualquier archivo con '-i' y '-n'
Cuando realiza una copia de seguridad de un archivo, se realiza una copia de seguridad del archivo existente y luego se reemplaza el archivo por uno nuevo. ¿Qué sucede si desea que el comando le pregunte antes de sobrescribir cualquier archivo? Es posible con las opciones '-i' y '-n'.
cp -rv -i myphotos Downloads/allphotos
Ask before overwriting any file
cp -rv -n myphotos Downloads/allphotos
Do not overwrite any file at all
Ahora el comando solo sobrescribirá un archivo duplicado si escribe 'y' cuando se lo solicite el comando. Y la opción '-n' no sobrescribirá ningún archivo.
Conserve los atributos de los archivos al copiarlos
Todos los comandos cp anteriores copiarán los archivos y sus datos a un destino, pero sin conservar los atributos del archivo, como el permiso, la propiedad y la marca de tiempo. Para copiar o conservar también los atributos de los archivos, use la opción '-p' en el comando cp.
cp -rf -p myphotos Downloads/allphotos
The above command will not only copy files data but also preserve all the attributes.
Nota
El opuesto del argumento -p es '–no-preserve'.
Estas fueron algunas opciones importantes disponibles para el comando cp. Para ver la lista completa de opciones, consulte la página man del comando cp.
man cp
FreeFileSync:compare y sincronice archivos
FreeFileSync es una herramienta fácil de usar para sincronizar archivos entre dos directorios. Tiene todas las funciones mencionadas anteriormente, además de muchas más opciones avanzadas para ayudarlo a copiar una gran cantidad de archivos.
Puede seleccionar dos directorios para sincronizar archivos, aplicar los filtros y hacer clic en comparar. Según el filtro que aplique, escaneará ambos directorios y proporcionará los resultados. Si está satisfecho con los resultados, puede hacer clic en el botón "Sincronizar" para iniciar el proceso de copia.
Comparar archivos según el tiempo, el tamaño y el contenido
Al hacer clic en el icono de "engranaje" junto al botón "Comparar", podrá seleccionar las propiedades para comparar al comparar dos directorios. De forma predeterminada, la herramienta compara el tiempo y el tamaño del archivo, pero también puede seleccionar para comparar el tamaño de los archivos o el contenido.
Aplicar filtros
FreeFileSync también puede aplicar filtros al escanear el directorio de origen y solo considerará archivos o directorios si se cumple al menos una de las condiciones en el campo de inclusión o ninguna de las condiciones en los campos de exclusión.
Por ejemplo, para escapar de todos los archivos de un directorio específico en el directorio de origen, agregue el nombre del directorio en el campo de exclusión, establezca el tamaño mínimo o máximo de los archivos, o establezca el intervalo de tiempo para seleccionar solo los archivos creados o modificados en el tiempo dado. .
También puede excluir archivos con una extensión, nombre o palabra específicos en algún lugar de la ruta.
\*.gif
This will exclude all the files in the base directory with '.gif' extension.
\tower.png
This will exclude the file in the base directory with the name tower.png.
*mountains*
This will exclude all the files in the base directory with the word 'mountains' anywhere in the path.
Para obtener más ejemplos de filtros, diríjase a la página oficial de FreeFileSync.
Descarga FreeFileSync
DescargarConclusión
Así que se trata de copiar archivos o directorios en Linux. Puede utilizar cualquiera de los métodos anteriores para copiar directorios en Linux. El siguiente artículo le mostrará cómo copiar o sincronizar archivos de manera conveniente entre computadoras con Linux, ya sea en la misma red o en redes diferentes.