zotero跨Windows设备数据同步(利用OneDrive、百度云同步空间等云服务)

zotero跨Windows设备数据同步(利用OneDrive、百度云同步空间等云服务)

特别注意

不能在多个设备同步使用zotero,否则会导致同步出现异常。

基本原理

同步zotero的数据,即同步全部的文献笔记、高亮标记信息。而这两类数据分别:

  • zotero的文献笔记、文献高亮全部存储在zotero.sqlite这个文件中。
  • zotero中的pdf文献由用户自己管理。

由此可见,只要用某种云服务同步上述两类数据即可。

zotero这两类数据在哪里?

打开Zotero软件,点击编辑-首选项

在这里插入图片描述
弹出“Zotero首选项”对话框,点击“文件和文件夹”,看到下图所示的内容:
在这里插入图片描述
图中两个红框标出了“已链接附件的根目录”和“数据存储位置”。

“已链接附件的根目录”

这个选项可能多数人没有设置过。我的习惯是,每次下载新的文献,都把pdf保存到统一的目录下,然后将题录信息导入zotero,再添加pdf文件链接为附件,这样可以避免zotero把文献重复拷贝。
于是,在这里把根目录设置为这个统一的目录,便于同步。

“数据存储位置”

这就是zotero.sqlite和保存到storage文件夹下的pdf文献所在路径。目录结构如下:
在这里插入图片描述
选中的这两项是需要同步的内容。

具体操作

在不同的Windows设备上,将这两类数据的路径指定为在当前设备上的实际路径。这要用到软链接
用法参考博客。

例如,我有电脑A和电脑B。现在我在电脑A有Zotero和一批文献、笔记,电脑B中的Zotero刚刚装好,内容一片空白。而文献我统一存放在E:\DownloadedArticles路径下。云同步路径为E:\sync_cloud\
在电脑A上将数据同步到云端:

  1. 关掉Zotero程序。
  2. 把文献同步到云端。这一步在不同的软件中操作类似。都是把包含pdf文件的目录剪切到云同步路径下E:\sync_cloud\DownloadedArticles
  3. 创建文献目录软链接。由于第一步剪切了E:\DownloadedArticles路径,所以将这个路径链接到E:\sync_cloud\DownloadedArticles。以管理员身份启动cmd,运行命令mklink /j E:\DownloadedArticles E:\sync_cloud\DownloadedArticles。命令完成后,在E:盘下仍能看到DownloadedArticles目录,只不过现在它是个软链接,而真正的数据在E:\sync_cloud\DownloadedArticles下。
  4. 将Zotero数据同步到云端。把zotero.sqlite和storage文件夹剪切到云同步路径E:\sync_cloud\Zotero下。
  5. 创建笔记、高亮标记数据软链接,以便在Zotero软件可以不改变设置地继续读取这些数据。以管理员身份启动cmd,运行命令mklink C:\User\A\Zotero\zotero.sqlite E:\sync_cloud\Zotero\zotero.sqlite创建文件链接,mklink -j C:\User\A\Zotero\storage E:\sync_cloud\Zotero\storage创建storage文件夹链接。
  6. 至此,E:\DownloadedArticlesC:\User\A\Zotero两个路径下看起来和原来一样。而所需的数据都已同步到云端。

在电脑B上等待云同步完成,然后操作:

  1. 在Zotero中查看数据存储位置,例如C:\User\B\Zotero\;并设置已链接附件的根目录,然后关闭Zotero。
  2. 创建软链接,已链接附件的根目录<==>云同步路径下的DownloadedArticles。以管理员身份启动cmd,运行命令mklink /j E:\sync_cloud\Zotero\zotero.sqlite C:\User\B\Zotero\zotero.sqlite
  3. 查看电脑B上Zotero的数据库文件zotero.sqlitestorage文件夹所在路径C:\User\B\Zotero,将它们删除或重命名,以便分别创建软链接到云同步路径下的对应文件。 以管理员身份启动cmd,运行命令mklink C:\User\B\Zotero\zotero.sqlite E:\sync_cloud\Zotero\zotero.sqlite创建文件链接,mklink -j C:\User\B\Zotero\storage E:\sync_cloud\Zotero\storage创建storage文件夹链接。
  4. 至此,打开Zotero,电脑B中的数据应与电脑A中的数据完全一致。

再次特别注意

不能在多个设备同步使用zotero,否则会导致同步出现异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git介绍及使用

目录 一、Git 的基本概念 1. 仓库&#xff08;Repository&#xff09;: 仓库是存储代码的地方。可以通过 命令将本地文件夹初始化为 Git 仓库&#xff0c;并使用 命令从远程仓库克隆到本地 2. 分支&#xff08;Branch&#xff09;: 分支是指从主分支上创建出来的一个分支&…

QQ邮箱批量发送

场景 已有用户邮箱,需要批量对他们发送一些广告信息。 完整代码 # coding=gbk import smtplib import csv from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipartdef send_email(msg_from, passwd, msg_to_list, text_content)

【QT】QT自定义C++类

在使用Qt的ui设计时&#xff0c;Qt为我们提供了标准的类&#xff0c;但是在很多复杂工程中&#xff0c;标准的类并不能满足所有的需求&#xff0c;这时就需要我们自定义C类。 下面以自定义的QPushButton作一个很简单的例子。 先新建默认Qt Widgets Application项目 一、自定义…

Java 中的 Cloneable 接口和深拷贝

引言&#xff1a; 在 Java 中&#xff0c;深拷贝是一种常见的需求&#xff0c;它可以创建一个对象的完全独立副本。Cloneable 接口提供了一种标记机制&#xff0c;用于指示一个类实例可以被复制。本文将详细介绍 Java 中的 Cloneable 接口和深拷贝的相关知识&#xff0…

vivado查看报告和消息2

Vivado 生成的消息 1、综合 log 日志 Vivado 综合 log 日志是 Vivado 综合工具的主要输出 &#xff0c; 其中包括 &#xff1a; • 所处理的文件 &#xff0c; 包括 &#xff1a; VHDL Verilog System Verilog XDC • 每个单元的参数设置 • 含多个驱动程序的信号…

如何优雅地使用React Hooks

一、理解什么是Hooks 在React中&#xff0c;Hooks其实就是一个函数&#xff0c;这个函数的命名以use开头、函数return一个结果&#xff1b;React Hooks其实就是封装了一些通用的、公共的方法&#xff0c;就是一些通用的工具。 二、React Hooks分为官方Hooks和自定义Hooks 官…

机器学习中的嵌入:释放表征的威力

简介 机器学习通过使计算机能够从数据学习和做出预测来彻底改变了人工智能领域。机器学习的一个关键方面是数据的表示&#xff0c;因为表示形式的选择极大地影响了算法的性能和有效性。嵌入已成为机器学习中的一种强大技术&#xff0c;提供了一种捕获和编码数据点之间复杂关系的…

二维码智慧门牌管理系统全新升级:个性化配置,智能管理,让你的社区更安全!

文章目录 前言一、个性化配置功能的升级二、智能化管理和便捷性 前言 随着科技的飞速发展&#xff0c;智能化管理已经成为各个领域的标配。在社区管理方面&#xff0c;智能化的优势在便捷性、高效性和安全性方面得到了广泛认可。最近&#xff0c;二维码智慧门牌管理系统经过全…

Flutter 常见错误记录总结

1、当 flutter pub get 指令报如下错误时&#xff1a; pub get failed command: "/Users/***/developer/flutter/bin/cache/dart-sdk/bin/dart __deprecated_pub --color --directory . get --example" pub env: { "FLUTTER_ROOT": "/Users/***/dev…

SpringBoot整合JUnit

1.创建新项目 说明&#xff1a;创建springboot_04_junit项目&#xff0c;选择对应的版本。 2.接口类 说明&#xff1a;新建BookDao接口。 package com.forever.dao;public interface BookDao {public void save(); }3.实现类 说明&#xff1a; 新建BookDaoImpl实现类。 pa…

npm发布自己的包

npm发布自己的包 1. 首先在npm官网注册一个自己的账户(有账号的可以直接登录) 注册地址 2. 创建一个自己的项目(如果已有自己的项目, 跳过这一步) npm init -y3. 确认自己的npm下载源, 只能使用npm官方的地址 npm config get registry修改地址源 npm config set registr…

洛谷P1102 A-B数对 详细解析及AC代码

P1102 A-B数对 前言题目题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目分析注意事项 代码经典二分&#xff08;O(nlgn)&#xff09;酷炫哈希&#xff08;O(n)&#xff09; 后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 酷&…

DASCTF X CBCTF 2023|无畏者先行

前言 笔者没有参加此次比赛&#xff0c;由于团队后面会复现此次比赛&#xff0c;所以笔者在此进行复现记录。 EASYBOX 考点&#xff1a;命令执行&#xff1f; 栈溢出 附件给了 docker 环境&#xff0c;可以直接在本地复现&#xff0c;但是 docker 我不会调试&#xff0c;幸…

11.Z-Stack协议栈使用

f8wConfig.cfg文件 选择信道、设置PAN ID 选择信道 #define DEFAULT_CHANLIST 0x00000800 DEFAULT_CHANLIST 表明Zigbee模块要工作的网络&#xff0c;当有多个信道参数值进行或操作之后&#xff0c;把结果作为 DEFAULT_CHANLIST值 对于路由器、终端、协调器的意义&#xff1…

react: antd组件使用 FC Fragment

RangePicker const defaultDate 2021-22-16 const [reportDate, setReportDate] useState<any>([defaultDate , defaultDate]);<RangePickerstyle{{width: 260px}}placeholder{[开始日期, 结束日期]}allowClear{false}defaultValue{[defaultDate, defaultDate]}va…

Java代码Demo——Map根据key或value排序

Map根据key排序 升序 Demo代码&#xff1a; //使用TreeMap Map<Integer, String> map new TreeMap<>(); map.put(10, "第10名次"); map.put(15, "第15名次"); map.put(1, "第1名次"); map.put(5, "第5名次"); map.put…

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

U盘显示无媒体怎么办?方法很简单

当出现U盘无媒体情况时&#xff0c;您可以在磁盘管理工具中看到一个空白的磁盘框&#xff0c;并且在文件资源管理器中不会显示出来。那么&#xff0c;导致这种问题的原因是什么呢&#xff1f;我们又该怎么解决呢&#xff1f; 导致U盘无媒体的原因是什么&#xff1f; 当您遇到上…

SLAM从入门到精通(被忽视的基础图像处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业上用激光slam的多&#xff0c;用视觉slam的少&#xff0c;这是大家都知道的常识。毕竟对于工业来说&#xff0c;健壮和稳定是我们必须要考虑的…

Pytorch 快速参数权重初始化

定义一个函数&#xff1a; 这里比如要初始化2维卷积权重值&#xff0c;采用xaiver 数据分布&#xff0c;还有很多其他的数据分布可以探索 def weights_init(m):if isinstance(m, nn.Conv2d):xavier(m.weight.data)xavier(m.bias.data) 然后定义一个含2维卷积的网络&#xff…