Ensayar el traslado de la carpeta localmente

LinuxBeginner
Practicar Ahora

Introducción

Un equipo de conservación traslada Garden Atlas a un nuevo puesto. El origen contiene borradores privados y vistas previas temporales; el receptor ya tiene una nota que no puede perderse. Tu resultado será una colección y un listado utilizables, primero para hoy y después para una edición revisada.

Necesitas familiaridad básica con el terminal. Este entorno independiente proporciona ambas carpetas locales y una instantánea de la siguiente edición. Aprenderás dirección, barras finales, simulaciones, filtros y alcance preciso de eliminación antes de aplicar las mismas ideas por SSH en el siguiente laboratorio.

Ensayar el límite de la colección

En este paso, copiarás la colección al directorio receptor después de comparar dos simulaciones seguras. Utiliza Terminal durante todo el laboratorio. Aquí no se necesita SSH.

El puesto de conservación traslada Garden Atlas. old/collection contiene textos, configuración de lectura oculta y un lector ejecutable. old/generated contiene listados desechables. old/personal es privado. El puesto nuevo ya tiene receiver-note.txt, que pertenece al equipo receptor y debe sobrevivir a cada actualización. revision/ contiene la siguiente edición suministrada para usarla después.

cd cambia de directorio. ls -a incluye entradas ocultas; cat lee texto sin editarlo. Empieza por consultar la nota del equipo receptor:

cd /home/labex/project/folder-move
ls -a old/collection
cat new/receiver-note.txt

La nota dice Received by Mira. Keep the west shelf clear. El catálogo antiguo de este puesto está incompleto. El destino no está vacío de forma intencionada.

rsync copia de su primera ruta a la segunda. -a significa modo archivo: copia directorios recursivamente y conserva fechas de modificación, permisos ejecutables y otros atributos admitidos. Una cuenta receptora normal no puede conservar propietarios arbitrarios; el curso comprueba bytes y permiso de ejecución, no propiedad entre sistemas, ACL ni atributos extendidos. -n simula sin cambiar archivos. -i enumera los cambios propuestos uno a uno.

La exclusión entre comillas descarta nombres terminados en .tmp en cualquier nivel; las comillas impiden que el shell expanda el patrón antes de que rsync lo reciba.

Primero simula el directorio de origen en sí, sin barra final:

rsync -ani --exclude='*.tmp' old/collection new/collection/

Busca un collection/ adicional propuesto dentro de la colección de destino. Ese anidamiento colocaría el lector en un lugar incorrecto.

Ahora simula el contenido del origen, con barra final:

rsync -ani --exclude='*.tmp' old/collection/ new/collection/

Ahora las rutas quedan directamente bajo new/collection/, incluidas .bindery.conf, read-book y texts/. rsync incluye los archivos con punto porque recibe el directorio mismo; un comodín del shell como old/collection/* omitiría entradas ocultas. Los archivos normales nuevos suelen mostrar >f+++++++++; otras marcas describen atributos cambiados. Las líneas de simulación son propuestas, no una colección entregada.

Elimina únicamente n para ejecutar la transferencia elegida:

rsync -ai --exclude='*.tmp' old/collection/ new/collection/
new/collection/read-book

El lector muestra reading_order=catalog,treatment, seguido del catálogo de Garden Atlas y el tratamiento con bisagras de papel. La ejecución directa demuestra que el lector copiado funciona con sus rutas de texto relativas y su configuración oculta. Si se deniega la ejecución, inspecciona los modos de origen y destino con ls -l y repite el modo archivo desde el origen preparado. No sustituyas el lector por una salida fija.

Si realizaste accidentalmente la copia anidada, inspecciona ls new/collection/collection antes de eliminar solo el duplicado con rm -r new/collection/collection. rm -r elimina permanentemente el directorio indicado y su contenido. Nunca acortes esta limpieza a new, que también contiene la nota receptora. Después repite la transferencia correcta.

Entregar el listado del puesto sin borrar notas

En este paso, completarás la primera entrega copiando el listado generado independiente. Permanece en Terminal, en /home/labex/project/folder-move.

La colección y los archivos generados tienen responsabilidades distintas. El origen gestiona todos los archivos de generated/; el receptor es dueño de su nota raíz. Selecciona solo el segundo directorio gestionado en lugar de copiar todo old/, lo que divulgaría también personal/.

rsync -ani old/generated/ new/generated/
rsync -ai old/generated/ new/generated/
cat new/generated/current.txt
cat new/receiver-note.txt

El listado dice Garden Atlas | desk edition 1. El listado obsoleto todavía forma parte intencionadamente de la edición 1. La nota receptora no ha cambiado. Ejecuta de nuevo el lector entregado:

new/collection/read-book

No ha hecho falta --delete. rsync conserva por defecto los archivos exclusivos del destino. Una exclusión impide transferir; no elimina un temporal ya presente en destino. Si copiaste una vista previa por error, inspecciona y elimina solo el archivo no deseado exacto, como rm new/collection/preview.tmp; después repite la sincronización filtrada. Nunca limpies la raíz receptora para superar la comprobación.

Aplicar la siguiente edición dentro del alcance gestionado

En este paso, entregarás una segunda edición y retirarás únicamente el listado generado antiguo. Permanece en Terminal, en el mismo espacio de trabajo.

cat acepta varios nombres de archivo y los muestra en ese orden. Lee la siguiente edición suministrada antes de sustituir el origen editable:

cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt

El catálogo tiene ahora 48 folios, el tratamiento usa bisagras de lino y hay un suplemento nuevo. cp -a copia recursivamente conservando los atributos. revision/. significa todo el contenido, incluidos los archivos ocultos. Superpone los cambios suministrados sobre old/, pero no elimina una entrada ausente de la revisión. El puesto retira explícitamente old/generated/obsolete.txt; elimina solo ese archivo de origen. rm borra permanentemente un archivo; no amplíes la ruta.

cp -a revision/. old/
rm old/generated/obsolete.txt

Normalmente rsync compara tamaño y fecha de modificación para decidir si cambiaron los datos. -c añade una comparación por sumas de comprobación del contenido. Estos archivos pequeños limitan el coste y permiten detectar cambios del mismo tamaño con marcas de tiempo conservadas. No crea historial de versiones ni copias de seguridad. Simula y aplica la actualización de la colección:

rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -aci --exclude='*.tmp' old/collection/ new/collection/

La simulación de la colección debe mostrar los dos textos revisados y el suplemento nuevo, sin vistas previas temporales. También pueden aparecer cambios solo de atributos.

--delete elimina las entradas del destino ausentes del origen dentro del directorio de sincronización elegido. Aquí solo generated/ está totalmente gestionado; la raíz receptora no. Simula la retirada, busca *deleting obsolete.txt y aplica exactamente el mismo alcance:

rsync -anci --delete old/generated/ new/generated/
rsync -aci --delete old/generated/ new/generated/
cat new/generated/current.txt new/collection/texts/addendum.txt new/receiver-note.txt
new/collection/read-book

Debes leer la edición 2 del puesto, el folio nuevo, la nota original y la salida actualizada del lector. Una réplica de toda la raíz con --delete podría borrar la nota. Nunca la utilices para retirar este único listado gestionado.

Repite las mismas simulaciones:

rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -anci --delete old/generated/ new/generated/

No deberían quedar cambios de archivos. Repetir es seguro dentro del alcance declarado, pero una futura eliminación en origen todavía requerirá decidir deliberadamente qué directorio de destino está gestionado. rsync por sí solo no permite recuperar la edición original; utiliza una copia de seguridad independiente cuando necesites historial.

Resumen

Entregaste una colección utilizable, conservaste su configuración oculta y los permisos del lector, y mantuviste la nota del puesto receptor. Una segunda sincronización actualizó los archivos gestionados y eliminó un listado retirado únicamente dentro del alcance declarado. La sincronización es direccional; no proporciona copias con historial ni fusiona conflictos.