¿Cómo sincronizar solo un tipo de archivo con Unison?

¿Cómo sincronizar solo un tipo de archivo con Unison?

Digamos que quiero sincronizar una carpeta al unísono, pero solo quiero sincronizar archivos .jpg.

¿Cómo podría hacer eso?

Respuesta1

Debes agregar las siguientes líneas a tu perfil:

ignore = Name ?*
ignorenot = Name *.jpg

Respuesta2

Ocho años después... lo aceptado no ignora adecuadamente los archivos sin punto ni los archivos de puntos.

Y cualquier patrón (por ejemplo, Regex ^((?!.jpg).)*$) que coincida con estos también devorará directorios que podrían tener .jpg cuando eran niños. (Consulte "Unison comienza a detectar actualizaciones..." enIgnorando caminosen el manual.)

La única forma que he encontrado es dejar que la sincronización continúe con esos archivos adicionales incluidos y luego usar

find "$DEST" --type f ! -iname "*.jpg" -delete
find "$DEST" --type d -empty -delete

para eliminarlos y luego limpiar los directorios vacíos. (En mi caso, en realidad lo hice

find "$DEST" --type d -empty ! -name ".stfolder" -delete

para conservar un directorio de marcadores SyncThing, no preguntes).

Una consecuencia potencialmente mala de esto es copiar muchos datos adicionales durante un corto período de tiempo; en mi caso, unos 3,5 GB se mueven de una partición a otra y luego se eliminan rápidamente.

información relacionada