es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Unison: Ignorar un directorio por nombre en todas las rutas utilizando la línea de comandos.

Actualmente estoy utilizando Unison para sincronizar archivos locales con mi nube. Por lo tanto, he configurado un archivo batch que contiene todas las opciones que necesito.

“K:\unison\unison 2.48.4 text.exe” -batch -repeat 1200 -fastcheck true -log=false D:\localsync Z:\cloudsync

Para indicarle a Unison que omita todas las carpetas con el nombre “.tmp” independientemente de su ubicación, he ideado este comando:

“K:\unison\unison 2.48.4 text.exe” -batch -repeat 1200 -fastcheck true -log=false -ignore=Name{..tmp} D:\localsync Z:\cloudsync

La construcción *.*.tmp se recomienda, ya que Unison ignora todos los nombres que comienzan con un punto.

Desafortunadamente, Unison arroja un error aquí cuando ejecuto el archivo batch:

Uncaught exception Sys_error(“C:\Users\nombre.unison*.tmp)

Luego se queja de que la sintaxis para el nombre del directorio está incorrecta. Obviamente, Unison está leyendo la declaración de ignorar y buscando un archivo con el nombre de la carpeta a ignorar en el directorio .unison.

No pude encontrar una solución para eso. Toda la información en el manual (https://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html) establece las rutas de ignorar en el perfil de Unison, que no estoy utilizando.

¿Cuál es la forma de hacer que Unison ignore algunos directorios cuando solo se utilizan opciones de línea de comandos?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con el comando "K:\unison\unison 2.48.4 text.exe" -batch -repeat 1200 -fastcheck true -log=false -ignore=Name{*.tmp} D:\localsync Z:\cloudsync es que Unison está interpretando los archivos .tmp como directorios en lugar de extensiones de archivo, y los está buscando en el directorio .unison.

    Una solución podría ser utilizar la opción -ignorenot seguida del patrón de ruta para coincidir con todos los archivos y directorios que no contienen .tmp. El comando actualizado sería:

    "K:\unison\unison 2.48.4 text.exe" -batch -repeat 1200 -fastcheck true -log=false -ignorenot 'Path {.tmp}/**' D:\localsync Z:\cloudsync

    Este comando debería omitir todas las carpetas y archivos con el nombre .tmp, independientemente de su ruta, durante la sincronización con la nube.

Comments are closed.