我使用 Unison 在 MacOS 和通过 USB 连接的外部 SSD 驱动器之间同步文件夹。外部驱动器具有 ExFAT 文件系统。
如果我通过指定两个根来执行 Unison,那么它就可以正常工作。
unison /Users/user.name/Nextcloud /Volumes/ssd_sync/macbook/nextcloud -fat=true
但是当我使用配置文件执行 Unison 时,它会失败并出现错误
❯ unison nextcloud
Unison 2.53.7 (ocaml 5.2.0): Contacting server...
Error: Cannot find canonical name of "/Volumes/ssd_sync/macbook/nextcloud": unable to cd either to it ("/Volumes/ssd_sync/macbook/nextcloud": No such file or directory)
or to its parent "/Volumes/ssd_sync/macbook
("/Volumes/ssd_sync/macbook: No such file or directory)
我的个人资料包含完全相同的根文件夹,看起来像这样
❯ cat /Users/user.name/Library/Application\ Support/Unison/nextcloud.prf
root = "/Users/user.name/Nextcloud"
root = "/Volumes/ssd_sync/macbook/nextcloud"
fat = true
我可以
cd
到“/Volumes/ssd_sync/macbook/nextcloud”。我注意到错误消息仅在左引号("/Volumes/ssd_sync/macbook: No such file or directory)
上。能有关系吗?如果是的话,这可能是什么原因?
我的主要问题是如何使用配置文件让 Unison 为我的案例工作?
我也尝试过不同的
ocaml
版本,但没有成功。
unison version 2.53.7 (ocaml 4.14.2)
问题在于引号,它们不是有效的路径。在命令行中它可以工作,因为参数的解释与从文件中读取它们有点不同。将配置更改为:
root = /Users/user.name/Nextcloud
root = /Volumes/ssd_sync/macbook/nextcloud
fat = true