【问题标题】:Unison: Ignore directory by name in all paths by using command lineUnison:使用命令行按名称忽略所有路径中的目录
【发布时间】:2022-01-25 18:21:44
【问题描述】:

我目前正在使用 unison 将本地文件与我的云同步。因此,我设置了一个批处理文件,其中包含我需要的所有选项。

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

为了告诉 unison 跳过所有名为“.tmp”的文件夹,不管它们的路径如何,我想出了这个命令:

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

建议使用 *.*.tmp 构造,因为统一会忽略所有以点开头的名称。

不幸的是,当我运行批处理文件时,unison 在此处抛出错误:

未捕获的异常 Sys_error("C:\Users\name\.unison\*.tmp)

然后它抱怨目录名称的语法错误。显然,unison 是在读取 ignore 语句,并在 .unison 目录中寻找一个名为要被忽略的文件夹的文件。

我想不出解决办法。手册 (https://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html) 中的所有信息都设置了我未使用的统一配置文件中的忽略路径。

仅使用命令行选项时如何统一忽略某些目录?

【问题讨论】:

  • 抱歉来晚了,但您确定不需要将-ignore 的参数括在引号中,以防止外壳扩展通配符 (*) 吗?我不熟悉 Windows 中的 shell。

标签: command-line unison


【解决方案1】:

我认为你的语法是错误的。试试

-ignore 'Name {*.*.tmp}'

来自Unison manual

如果您愿意,也可以在命令行上指定忽略模式(这可能不是很有用),使用 -ignore 'Name temp.txt' 之类的选项。

【讨论】:

  • 感谢您的回答。当我尝试这个时,我从一致中得到一个语法错误:未捕获的异常 Sys_error("C:\\Users\\name\\.unison\\{..tmp}': The syntax for file name , 目录名或卷错误。Unison 显然试图打开一个名为 ..tmp. 的文件
猜你喜欢
  • 2018-09-27
  • 2015-04-14
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
相关资源
最近更新 更多