我使用 OneDrive 在多台计算机之间同步脚本,包括我的家用电脑和办公电脑。在工作中,我们最近为普通访问和管理员访问实施了单独的登录。这导致了一个问题,因为我的脚本需要在管理员权限下运行,但我的管理员帐户无权访问 OneDrive 同步的普通帐户的文件夹。我最初通过在同步位置和管理员帐户可以访问的位置之间手动复制脚本来解决这个问题。
接下来,我尝试在工作电脑上使用硬链接,将原始文件设置在同步位置,将硬链接版本设置在外部文件夹中。当我从工作机器上更改脚本时,这种方法很有效,但最近我发现,如果我在家用机器上进行更改,硬链接就会中断。似乎 OneDrive 同步文件的过程就像删除并重新添加,因此删除步骤会破坏硬链接。脚本继续工作,因为“链接”文件现在变成了独立文件。
有人能想出一种方法来保持这些同步,或者有更好的方法来做同样的事情吗?我不认为有办法改变硬链接行为,因为这似乎是其设计不可或缺的一部分。OneDrive 将单个文件同步到与其他文件不同的位置是理想的,但我还没有找到这样做的方法。
答案1
已经两年多了,不知道你是否解决了......
我的解决方案和你的第二次尝试类似。相反,我将原始目录放在 Onedrive 文件夹下,并在外面创建一个 Junction。
我之所以不反向操作,是因为这样会让onedrive一直处于“正在同步”状态。(我猜是因为onedrive文件夹下的文件其实是“重新解析点”,如果它们在onedrive文件夹之外,onedrive就无法更改它们的标头信息)。
看:https://en.wikipedia.org/wiki/NTFS_reparse_point
OneDrive 将下载到本地存储的文件和目录标记为重新解析点,标签为 0x9000001a。实际数据正常存储。