Unison:仅在一个方向上同步

Cha*_*eon 4 synchronization unison

如果我有文件夹A和B,是否可以将新文件从A同步到B,并且不删除在A中删除的B文件?

就是说,我想将B用作任何文件的大容器,包括我曾经从A同步并删除的文件。我认为这是一种“单向同步”。

Dan*_* K. 5

我了解您对Unison有这两个要求

  • 镜像文件夹A到B和
  • 在B上保存数据

镜射

根据Unison 手册,该-force xxx选项“有效地将Unison从同步器更改为镜像实用程序”。该force选项将要使用的文件夹作为参数。Unison将解决所有更改,以支持此文件夹。

命令行镜面,例如,文件夹/src/dir/dest/dir

unison /src/dir /dest/dir -force /src/dir
Run Code Online (Sandbox Code Playgroud)

保存

使用该选项-nodeletion xxx可防止Unison建议对文件夹进行任何删除xxx作为默认操作。

从文件/dest/dir删除后保留文件的命令/src/dir行将是

unison /src/dir /dest/dir -nodeletion /dest/dir
Run Code Online (Sandbox Code Playgroud)

总结

因此,总的来说,您希望使用这两个选项来运行Unison以满足您的要求:

unison /src/dir /dest/dir -force /src/dir -nodeletion /dest/dir
Run Code Online (Sandbox Code Playgroud)

笔记

在将Unison设置为以批处理模式运行之前,建议您使用图形UI在交互模式下运行Unison。当您看到所有待处理的更改(包括Unison建议的默认操作)时,使用图形UI更为方便。

当您对默认操作感到满意时,可以-batch使用文本UI 以批处理模式(选项)运行一致。在批处理模式下,将接受具有默认操作的更改,将跳过没有默认操作的更改(由于冲突)。

请记住,用户可以在交互模式下覆盖这些选项。它们绝不是绝对的删除保护,它们只是向Unison提供有关如何决定默认操作的指导。在交互模式下,用户始终可以覆盖默认操作,即,按“ <”将更改传播到源文件夹(不需要的方向)。

  • @TomHale因为没有它,冲突“文件存在于`/dest/dir`但不存在于`/src/dir`”也将得到解决,有利于`/src/dir`(这意味着“`/src/ dir` 是正确的"),有效地在 `/dest/dir` 中删除它 (2认同)