忽略除一个子文件夹之外的目录中的所有内容

det*_*det 6 regex unison regular-language

我有一个目录~/x7/music/sfx.
根目录中有一些文件和文件夹~/x7/music.
我需要只同步sfx文件夹并忽略其他任何内容music.

我尝试过很多变种,但都错了.

ignore = Name music/*
ignorenot = Regex music/sfx/.* (OR just *)
Run Code Online (Sandbox Code Playgroud)

不起作用.

我期待用类似的东西

ignore = Name music/*^/
Run Code Online (Sandbox Code Playgroud)

Wil*_*ell 1

我不熟悉齐奏,但要忽略除 sfx 之外的所有内容,您可以使用

\n\n
ignore = Regex /root/path/to/music/.*\nignorenot Regex /root/path/to/music/sfx/.*\n
Run Code Online (Sandbox Code Playgroud)\n\n

文档来源

\n\n
\n

还有一个ignorenot首选项,它指定一组不应被忽略的路径模式,即使它们与忽略模式匹配。然而,这两组模式的交互可能有点棘手。它的工作原理如下:

\n\n
    \n
  • Unison 开始从副本\xe2\x80\x94 的根(即空路径)检测更新。如果空路径ignore与模式匹配且不与ignorenot模式匹配,则整个副本将被忽略。(因此,包含Name *\n 作为ignore模式并不是一个好主意。如果您想忽略除\n 特定文件集之外的所有内容,请使用Name ?*.

  • \n
  • 如果根是目录,Unison 会继续在根的所有直接子级中查找更新。同样,如果某个子项的名称与某个ignore模式匹配但与某个模式不匹配ignorenot,则整个路径(包括其下面的所有内容)都将被忽略。

  • \n
  • 如果任何非忽略的子级是目录,则该过程将递归地继续。

  • \n
\n
\n