如何使用 unison 的路径选项来处理多条路径?

如何使用 unison 的路径选项来处理多条路径?

我想使用 unison 同步以下位置:

  • /home/user/Audiobooks 与 /shared/Audiobooks
  • /home/user/Music 与 /shared/Music
  • /home/user/Podcasts 与 /shared/Podcasts

unison 命令行参数是什么?基于此,我可以猜测

如果指定了一个或多个路径首选项,Unison 将仅同步这些路径及其子路径。(例如,这对于快速同步一个目录非常有用。)请注意,路径首选项是按字面意思解释的 — 它们不是正则表达式。

这是我的猜测。对吗?

unison -ui text /home/user /nocrypt/Shared -path Audiobooks -path Music -path Podcasts 

我也可以使用配置文件。我阅读了帮助文档并找到了一个我改编的示例。但我不确定它是否正确。

根据帮助文档修改:这是一个更复杂的配置文件,说明了一些其他有用的功能。

# Roots of the synchronization
root = /home/user
root = /shared

# Paths to synchronize 
path = Audiobooks
path = Music
path = Podcasts

那是对的吗?

当我写完这个问题时,我基本上已经搞清楚了。我认为上述两种方法都是正确的。unison 的优点在于,您可以像进行实际同步一样进行“试运行”。默认操作始终是“不执行任何操作”(在呈现所有更改之后)。我现在要测试它,看看它是否有效。我想我不需要答案,但我会把这个问题留在这里作为参考(并亲自回答并确认这是否有效)。

答案1

是的,我确认我在问题中陈述的内容是正确的。

答案2

就像您的问题一样,我发布此内容以供参考。

您可以混合搭配变量。如果您想使用shell 变量例如,您像往常一样从配置文件开始,但在调用命令时传递包含 shell 变量的参数 - 原因是您无法在配置文件中正常使用这些变量。

root = $HOME似乎有效,但在中root = ssh://host//$HOME$HOME不被识别为变量。

例子documents.prf

# select folders
  path = Documents
  path = Desktop
# options
  batch = true

然后你可以使用的命令如下所示:

unison documents -root $HOME -root ssh://user@remotehost//home/$USER

答案3

您可以像根目录一样使用它,并且可以定义您想要的所有路径。

# Roots of the synchronization
root = /
root = ssh://x.x.x.X//

# Paths to synchronize
path = /etc/httpd
path = /var/www

答案4

# Roots of the synchronization
root = /
root = ssh://x.x.x.X//

# Paths to synchronize
path = etc/httpd
path = var/www

上述代码适用于我的 unison 配置文件配置,记住无需启动的路径斜杠

相关内容