【Windows】硬链接和软链接(OneDrive同步指定目录?)

news2024/11/14 15:34:34

文章目录

  • 一、场景带入
  • 二、Windows下的硬链接和软链接
    • 2.1 硬链接(Hard Link)
    • 2.2 软链接(符号链接,Symbolic Link)
    • 2.3 软链接和快捷方式
    • 2.4 应用场景
  • 三、OneDrive中的应用
    • 3.1 错误姿势
    • 3.2 好像可行的尝试
    • 3.3 合理的解决方案

一、场景带入

OneDrive是一个非常好用的产品,但当你使用它进行自动备份时,会发现他只支持对几个特定的目录进行备份:

在这里插入图片描述
这时就想到了Linux下常见的概念“链接”,而Windows也支持链接功能。

【Linux】硬链接 和 软链接。

二、Windows下的硬链接和软链接

更加详细的概念,可以看前面的链接,以前写的文章,Linux下的链接。

2.1 硬链接(Hard Link)

硬链接是指向同一文件内容的多个目录项,使得在不同位置的多个文件名指向同一个文件数据块。硬链接与源文件之间没有主从关系,它们是完全对等的。

特点:

  • 共享数据:硬链接指向相同的文件数据块,因此修改任意一个硬链接会影响所有指向该数据块的硬链接。
  • 不可区分:硬链接之间没有区别,所有链接都是平等的,没有“主”或“次”之分。
  • 删除影响:删除一个硬链接不会删除文件数据,只有当所有指向该文件数据的硬链接都被删除后,文件数据才会被删除。
  • 限制硬链接只能在同一卷(partition或者说一个分区、一个不是一类文件系统)上创建,不能跨卷创建。

创建方法:

在 Windows 中,可以使用命令行工具 mklink 创建硬链接。命令格式如下:

mklink /H <硬链接路径> <目标文件路径>

例如,创建一个名为 hardlink.txt 的硬链接,指向 original.txt

mklink /H C:\example\hardlink.txt C:\example\original.txt

mklink用法(这是cmd命令,power shell不能直接用):
MKLINK [[/D] | [/H] | [/J]] Link Target

    /D      创建目录符号链接(软件)。默认(无参数时)为文件符号链接。
    /H      创建硬链接。
    /J      创建目录联接(软链接,不能跨区)。
    Link    指定新的符号链接名称。
    Target  指定新链接引用的路径(相对或绝对)。

/J和/D都可以创建软链接,/J的兼容性和透明性很好,但是它不能跨区。硬链接只能用于文件,不能用于目录。

2.2 软链接(符号链接,Symbolic Link)

软链接(符号链接)是指向另一个文件或目录的引用,它们包含目标文件或目录的路径,而不是实际的数据。软链接类似于快捷方式。

特点:

  • 指向目标:软链接指向文件系统中的另一个文件或目录,包含目标文件或目录的路径。
  • 独立性:软链接是独立的文件,可以位于与目标文件或目录不同的位置。
  • 灵活性:可以创建指向任何位置的软链接,无论是本地文件系统还是远程文件系统。
  • 方便更新:如果目标文件或目录发生变化,软链接无需修改,只需确保其指向的路径正确。

创建方法:

在 Windows 中,可以使用命令行工具 mklink 创建软链接。命令格式如下:

mklink [/D] <软链接路径> <目标路径>

其中,/D 参数用于创建指向目录的软链接。如果省略 /D 参数,则创建指向文件的软链接

例如,创建一个名为 symlink.txt 的软链接,指向 original.txt

mklink C:\example\symlink.txt C:\example\original.txt

创建一个名为 symlinkDir 的软链接,指向 originalDir 目录:

mklink /D C:\example\symlinkDir C:\example\originalDir

2.3 软链接和快捷方式

Windows 的快捷方式(Shortcut)与软链接(Symbolic Link)类似,但它们在实现和用途上有所不同。以下是两者的详细比较:

(1)Windows 快捷方式

  • 特性

    1. 文件类型:快捷方式是一个特殊的文件,通常具有 .lnk 扩展名。
    2. 内容:快捷方式文件包含目标文件或目录的路径,以及图标、工作目录、描述等其他信息。
    3. 创建工具:可以通过文件资源管理器的右键菜单创建,也可以使用脚本或编程方式创建。
    4. 功能:主要用于创建桌面或菜单中的快捷访问路径,用户双击快捷方式时,会打开其指向的目标文件或目录。
  • 示例
    在文件资源管理器中,右键点击文件或目录,选择“发送到”->“桌面快捷方式”即可创建一个快捷方式。

(2)软链接(Symbolic Link)

  • 特性
    1. 文件类型:软链接是文件系统中的一种链接类型,可以指向文件或目录。
    2. 内容:软链接本质上是一个指向目标文件或目录路径的文件系统条目。
    3. 创建工具:需要使用命令行工具 mklink 或 PowerShell 的 New-Item cmdlet 创建。
    4. 功能:提供与目标文件或目录相同的访问方式,用户访问软链接时,就像访问目标文件或目录本身。

(3)比较

  • 实现方式:快捷方式是一个独立的文件,包含了指向目标的路径和其他元数据;软链接是文件系统层级的链接,直接指向目标路径。
  • 访问方式:双击快捷方式会通过操作系统处理并打开目标;访问软链接时,操作系统直接将其视为目标文件或目录的一部分。
  • 用途:快捷方式通常用于用户界面的快捷访问;软链接用于文件系统级别的文件和目录组织。

Windows 快捷方式和软链接在实现和使用场景上有所不同。快捷方式更适合于用户界面的快捷访问和导航,而软链接则更适合于文件系统级别的链接和组织。尽管它们在功能上有相似之处,但它们并不完全相同。

2.4 应用场景

  • 硬链接:适用于需要在同一卷内共享数据而不复制文件内容的情况。例如,同一文件的多个副本保持一致。
  • 软链接:适用于需要跨卷、跨目录、甚至跨网络位置访问文件或目录的情况。例如,创建快捷方式或替代目录结构。

三、OneDrive中的应用

本节指的是你需要OneDrive的自动同步功能,而不是简单的云存储功能。

在 Windows 操作系统中,文档、图片、音乐和视频等文件夹是系统预定义的特殊文件夹,通常称为用户文件夹(User Folders)或个人文件夹(Personal Folders)。这些文件夹的主要作用是方便用户组织和管理不同类型的个人文件。

这些目录默认在用户目录下,也即操作系统所在分区下,如果你使用这些目录、且像传统做法一样给电脑分了C盘、D盘等、且C盘不太大,就可以在这些文件夹上右键—属性,在位置选项下修改默认存储位置。

OneDrive 通过客户端软件在本地创建一个同步文件夹(默认位于用户主目录下,断开OneDrive账户链接,在其他位置新建OneDrive文件夹即可改变默认位置,但没必要),并通过网络通信将本地文件夹与云端存储保持同步。这种机制允许用户在多个设备上访问和管理相同的文件,提供了数据备份和跨设备访问的便利性。通过文件系统监控、增量同步(只传改动部分)和冲突处理等技术,OneDrive 实现了高效和可靠的文件同步服务

3.1 错误姿势

文章开头讲到,Onedrive的自动备份功能,只能备份这几个目录,没有其他选项,要想给其他目录添加自动备份功能,可以在这些目录下面为目标文件或目录添加链接吗?

根据前面讲的,硬链接(/H)只能用于文件,不能跨区(或者说跨卷、跨越文件系统);软链接(/D)可以用于文件和目录,可以跨区;目录链接(/J)是不能跨区的用于目录的软链接。根据需要设置即可,通常选择软链接。

如,我在视频文件夹下为F盘的download 文件夹添加软链接:

命令(直接使用CMD也可以的,命令就是前面讲到的,都需要管理员权限打开终端命令行):

New-Item -ItemType SymbolicLink -Path C:\Users\14134\Videos\VideoBackup -Target  F:\download  

在这里插入图片描述

CMD示例:

mklink /D C:\Users\14134\Videos\test   F:\download

在这里插入图片描述


软链接只是指向所链接的文件或目录,不会占用和目标相似的空间,只会占用极小的空间(最多几个字节左右),硬链接一点额外空间也不占。

但你在Windows中在软链接上右键、属性,他会显示目标文件或目录的大小,dir /s命令也是如此,这只是一个逻辑问题,便于你通过链接文件也能查看目标的大小信息。

用下面的方法就可以看到软链接文件本身的大小(powershell):

# 替换为你的软链接文件路径
$linkPath = "C:\Users\14134\Videos\VideoBackup"
# 获取软链接文件信息
$linkInfo = Get-Item -Path $linkPath
# 输出软链接文件的大小
Write-Host "软链接文件大小: $($linkInfo.Length) 字节"

在这里插入图片描述
或者使用Disk Genius软件,可以看到这个文件夹是空的。


现在使用OneDrive备份“视频”这个目录,你会发现:
在这里插入图片描述


再使用硬链接:
在这里插入图片描述
OneDrive可以备份了:
在这里插入图片描述

同样的,目录链接也是不能备份的。


原因:

  • OneDrive是跨设备、跨系统的备份系统;
  • 硬链接可以代表目标本身,而符号链接只是目标的路径;
  • 软链接若能备份,则会有这些危险:跨平台一致性、恶意链接、数据完整性、循环引用等。

3.2 好像可行的尝试

若是直接在OneDrive目录下创建软链接呢?

即将前面的“图片、视频、文档”等支持备份的目标直接更换为OneDrive文件夹:

C:\Users\14134\OneDrive
C:\Users\14134\Videos>mklink /D C:\Users\14134\OneDrive\VideoBackup   F:\download
为 C:\Users\14134\OneDrive\VideoBackup <<===>> F:\download 创建的符号链接

可以看到OneDrive立刻开始了备份:
在这里插入图片描述


看起来解决问题了。

其实,问题不少:

  1. 本地或云端修改、增删的操作都不会自动与另一侧同步,需要手动 关/开 OneDrive的备份开关;
  2. 这是软链接本身特性以及OneDrive限制导致的;
  3. 这好像只用了OneDrive的备份、存储功能,并不能自动同步。

OneDrive 同步特定文件夹中的文件,例如桌面、文档和图片、OneDrive文件夹,是因为这些文件夹通常包含个人用户需要经常访问和更新的文件。OneDrive 会持续监控这些文件夹中的更改,并在检测到更改时自动将它们同步到云端。OneDrive 无法自动同步软链接指向的文件夹内容更改,主要有以下几个原因:

  1. 技术限制: OneDrive 同步功能是基于文件系统更改的。当文件或文件夹发生更改时,OneDrive 会收到操作系统通知,并相应地更新云端中的文件。然而,软链接是一种文件系统指针,指向另一个文件或文件夹的位置。当软链接指向的文件或文件夹发生更改时,OneDrive不会收到操作系统通知,因为更改发生在软链接本身之外

  2. 复杂性问题: 如果 OneDrive 能够自动同步软链接指向的文件夹内容更改,则需要额外的逻辑来跟踪软链接并识别何时需要更新它们。这将增加 OneDrive 的复杂性,并可能导致性能问题。

  3. 潜在风险: 允许 OneDrive 自动同步软链接指向的文件夹内容更改可能会带来潜在风险。例如,如果用户不小心删除或移动了软链接指向的文件或文件夹,OneDrive可能会继续尝试同步它们,导致数据丢失或损坏。

  4. 替代方案: 为了解决这些限制,OneDrive 提供了其他方法来同步软链接指向的文件夹内容。用户可以手动将软链接指向的文件夹复制到 OneDrive文件夹中,或者使用第三方备份工具来同步它们。

这些也是OneDrive尚未支持自动同步自定义目录的部分原因。

3.3 合理的解决方案

(1)将需要同步的内容本身放在支持同步的那些目录下面

包括:文档、图片、视频、音乐、桌面和OneDrive文件夹。

如果你没有给硬盘分区的好习惯,或者有一个1TB的系统盘,这是个很方便、好用的做法。

(2)编写脚本辅助

如果你一定要使用软链接的方式,我有一个参考:你在(仅)OneDrive文件夹下删除内容的时候,它会同步你的软链接指向目标的更改。

可以写个bat脚本,就新建和删除辅助文件(OneDrive文件夹下),用来同步你的软链接更改。不过这依然是手动同步,和开关OneDrive的同步开关是一样的。

(3)借助同步软件

使用(1)的方法虽然很好,但如果你想同步你的一个工作目录(放在了支持自动同步的那几个目录下),就可能会有这几个问题:

  1. 工作文件改动极其频繁,而OneDrive同步实时性极强,这可能会消耗一点点CPU和网络资源;
  2. 你只想定时备份,比如每天要下班的时候。

这时候,就可以考虑使用同步软件来完成这些需求了。

比如:https://www.goodsync.com/cn

该软件支持跨平台、双向同步、自动同步、文件过滤、脚本等功能。常见云存储均可链接,如:OneDrive、Google Drive、iCloud、Dropbox、MEGA、SFTP等(不过是付费的$20一年,一个月试用)。

一边选择本地文件夹,一边选择OneDrive(登录后选)的文件夹:
在这里插入图片描述

在设置中选择双向同步(如果只备份就选择单向),在自动选项下即可设置同步的时机,计划里面还可以设置定时同步:
在这里插入图片描述

设置后保持后台运行即可,测试发现同步功能确实好用,两端操作后同步很及时。

免费版不能自动实时同步,$20一年如果贵的话,网上有那种。或者试试别的备份软件,不展开说了。

(4)其他云存储

使用OneDrive相对来说是最划算的,Microsoft 365家庭版,一个人一年就几十,容量1TB。

Google Drive、iCloud、阿里云、百度云也可以用,基本都支持同步自定义文件夹。或者结合Alist、RaiDrive等软件使用。

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

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

相关文章

SpringBoot使用Redisson操作Redis及使用场景实战

前言 在SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis中&#xff0c;我们介绍了RedisTemplate以及如何SpringBoot如何通过RedisTemplate、StringRedisTemplate操作Redis。 RedisTemplate的好处就是基于SpringBoot自动装配的原理&#xff0c;使得整合redis时比较…

51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)

硬件&#xff1a;STC8H8K64U/STC8051U34K64 RA8889开发板 硬件跳线变更为并口8080模式&#xff0c;PS00x&#xff0c;R143&#xff0c;R142不接&#xff0c;R141无关 8080接口电路连接图&#xff1a; 实物连接图&#xff1a; RA8889开发板外接MCU连接器之引脚定义&…

防火巡查记录卡数字化平台

防火巡查记录卡数字化平台 利用凡尔码搭建防火巡查记录卡数字化平台是一个高效且实用的解决方案&#xff0c;能够显著提升防火巡查的效率和管理水平。替代纸质巡检造成的数据丢失等困扰。 一、如何注册凡尔码平台 百度搜索“凡尔码”找到平台地址即可注册开通。凡尔码平台通…

二叉树层序遍历?秒了!

废话不多说&#xff0c;直接上题&#xff0c;涉及到二叉树层序遍历的题目大部分都可以用这个方法&#xff1a; 示例&#xff1a;力扣102 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有…

实验8 视图创建与管理实验

一、实验目的 理解视图的概念。掌握创建、更改、删除视图的方法。掌握使用视图来访问数据的方法。 二、实验内容 在job数据库中&#xff0c;有聘任人员信息表&#xff1a;Work_lnfo表&#xff0c;其表结构如下表所示&#xff1a; 其中表中练习数据如下&#xff1a; 1.‘张明…

数据结构之单链表(赋源码)

数据结构之单链表 线性表 线性表的顺序存储结构&#xff0c;有着较大的缺陷 插入和删除操作需要移动大量元素。会耗费很多时间增容需要申请空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗即使是使用合理的增容策略&#xff0c;实际上还会浪费许多用不上的…

【Oracle】实验五 PL_SQL编程

【实验目的】 熟悉PL/SQL的数据类型和书写规则熟悉控制结构和游标的使用编写和运行函数、过程和触发器 【实验内容】 编写脚本文件&#xff0c;调试运行脚本文件&#xff0c;并记录结果。 本地子程序的编写及调试 1、编写一个PL/SQL块&#xff0c;功能用于打印学生信息。整…

【学习css1】flex布局-页面footer部分保持在网页底部

中间内容高度不够屏幕高度撑不开的页面时候&#xff0c;页面footer部分都能保持在网页页脚&#xff08;最底部&#xff09;的方法 1、首先上图看显示效果 2、奉上源码 2.1、html部分 <body><header>头部</header><main>主区域</main><foot…

深入解析香橙派 AIpro开发板:功能、性能与应用场景全面测评

文章目录 引言香橙派AIpro开发板介绍到手第一感觉开发板正面开发板背面 性能性能概况性能体验 应用场景移植操作系统香橙派 AIpro开发板支持哪些操作系统&#xff1f;烧写操作系统到SD卡中启动开发板的步骤查看系统提供的事例程序体验——开发的简洁性 视频播放展示ffmpeg简介f…

【Python3】自动化测试_用Playwright发送API请求

一、创建APIRequestContex实例 # 连接到 APIRequest&#xff0c;可用于 Web API 测试的 API。 myRequest myPlaywright.request# 创建APIRequestContext实例&#xff0c;该实例可用于发送 Web 请求 myRequestContext myRequest.new_context() myRequest.new_context(**kwargs…

【MySQL】8.复合查询

复合查询 一.基本查询回顾(新增子查询)二.多表查询三.自连接四.子查询1.单列单行子查询2.单列多行子查询——三个关键字3.多列子查询4.在 from 子句中使用子查询 五.合并查询六.总结 一.基本查询回顾(新增子查询) //1.查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还…

js逆向-webpack-python

网站&#xff08;base64&#xff09;&#xff1a;aHR0cHM6Ly93d3cuY29pbmdsYXNzLmNvbS96aA 案例响应解密爬取&#xff08;webpack&#xff09; 1、找到目标url 2、进行入口定位&#xff08;此案例使用 ‘decrypt(’ 关键字搜索 &#xff09; 3、找到位置进行分析 --t 为 dat…

【软件工具】VMware Workstation Pro 15.5安装

1、双击运行安装包程序 2、接受许可证协议 3、选择安装位置&#xff0c;建议非中文无空格&#xff0c;增强型键盘驱动程序可选 4、按照自身使用习惯勾选产品更新和客户体验提升计划 5、快捷方式 6、开始安装 7、稍等会儿(可以玩会儿手机) 8、可输入许可证也可直接完成&#xff…

《ElementUI/Plus 基础知识》el-tree 之修改可拖拽节点的高亮背景和线

前言 收到需求&#xff0c;PM 觉得可拖拽节点的高亮背景和线样式不明显&#xff01;CSS 样式得改&#xff01; 注意&#xff1a;下述方式适用于ElementUI el-tree 和 ElementPlus el-tree&#xff01; 修改 拖拽被叠加节点的背景色和文字 关键类名 is-drop-inner .el-tree…

几何距离与函数距离:解锁数据空间中的奥秘

几何距离&#xff1a;直观的空间度量 几何距离&#xff0c;顾名思义&#xff0c;是我们在几何学中熟悉的距离概念&#xff0c;如欧几里得距离、曼哈顿距离和切比雪夫距离等。这些距离度量直接反映了数据点在多维空间中的位置关系。 欧几里得距离&#xff1a;最为人熟知的几何距…

conda install问题记录

最近想用代码处理sar数据&#xff0c;解放双手。 看重了isce这个处理平台&#xff0c;在安装包的时候遇到了一些问题。 这一步持续了非常久&#xff0c;然后我就果断ctrlc了 后面再次进行尝试&#xff0c;出现一大串报错&#xff0c;不知道是不是依赖项的问题 后面看到说mam…

langchain-runnable底层原理

文章目录 langchainlangchain生态介绍langchainLCELrunnablerunnable基础能力介绍invokebatchstreamainvokeabatchastream__or__、__ror__pipeget_nameInputType (属性)OutputType (属性)input_schema (属性)output_schema (属性) langchain langchain生态介绍 langchain是一个…

Min P Sampling: Balancing Creativity and Coherence at High Temperature阅读笔记

上一篇文章是关于大语言模型的调参数&#xff0c;写了temperature这个参数近期的一个工作。那接下来&#xff0c;就不得不再来讲讲top-p这个参数啦。首先还是上文章&#xff0c;同样是非常新的一个工作&#xff0c;2024年7月1日submit的呢。 文章链接&#xff1a;https://arxi…

NLP任务:情感分析、看图说话

我可不向其他博主那样拖泥带水&#xff0c;我有代码就直接贴在文章里&#xff0c;或者放到gitee供你们参考下载&#xff0c;虽然写的不咋滴&#xff0c;废话少说&#xff0c;上代码。 gitee码云地址&#xff1a; 卢东艺/pytorch_cv_nlp - 码云 - 开源中国 (gitee.com)https:/…

LED显示屏中什么是亮度检测?什么是亮度调节?

在夜幕降临的城市中&#xff0c;一套套璀璨夺目的LED显示屏如同现代生活的万花筒&#xff0c;展示着五彩斑斓的信息世界。从繁华的商业街区到繁忙的交通枢纽&#xff0c;再到家庭影院&#xff0c;LED显示屏以其高亮度、长寿命和灵活性&#xff0c;在数字时代的大潮中迅速崛起&a…