mklink简介

Linux 下有一个叫符号链接的东东,是 ln 这个链接命令,mklink 和 ln 的功能几乎一样。在xp系统下,junction命令要用微软开发的小程序 junction.exe实现,从http://live.sysinternals.com/可以下载。现在Windows Vista之后的系统自带了mklink的功能。创建符号链接不仅可以当作快捷方式使用,最重要的是重定向链接符可以被程序读取然后重定向真正的位置,这是快捷方式无法做到的。

win+r -> cmd -> mklink:

MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接,而不是符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径(相对或绝对)。

默认情况:

  • 文件的符号链接,如没有参数指定,则创建文件的符号链接,删除文件链接不会影响目 标文件,且创建链接时允许目标文件不存在;
  • 目录的符号链接(SYMLINKD) /D该参数可以创建目录的符号链接,删除目录链接不 会影响目标目录,且创建链接时允许目标目录不存在;
  • 目录的软链接(JUNCTION) /J 该参数可以创建目录的软链接(联接),作用基本和符号链接类似,NT6系统的用户目录就是以这种形式存在的;
  • 文件的硬链接 /H 该参数可以创建文件的硬链接,即一个文件的多个别名,NT6系统WinSXS目录下的大部分文件是以这个形式存在的;

mklink的应用

根据上面的介绍大家肯定知道我想干什么了,对!就是利用mklink为网盘加上多目录同步的功能。下面以Dropbox备份某软件的配置为例,其他的网盘都类似:
网盘的同步文件夹是E:/u/Dropbox,需要同步的文件夹是D:/soft1/config我们使用下面的命令:

mklink /D "E:/u/Dropbox/mydata" "D:/soft1/config"

这样E:/u/Dropbox/mydata就指向D:/mydata,相当于两个访问接口。

删除E:/u/Dropbox/mydata不会影响到D:/soft1/config,反之则不行。

按照这种方法就可以让Dropbox等网盘部分不同的文件夹了。

但是现在也有个问题,你会发现只有Dropbox第一次启动或者重启时会同步,你的修改不能马上被Dropbox捕获到,

Dropbox可以使用系统托盘菜单中的暂停和恢复同步来手动让Dropbox对修改进行捕获,

有些网盘如酷盘就没有这个功能,只能利用重启软件来同步,很不方便。

其实这里还有个方法就是:我们反着来,将真实文件夹(如config)放在Dropbox中,在D:/soft1/中创建软连接, 如命令:

mklink /D "D:/soft1/config" "E:/u/Dropbox/mydata"

这样的缺点就是其实根本没有改进网盘不支持多目录备份的问题,而是和系统开玩笑而已,但是这样确实很方便,我目前基本使用这种方法。

How to remove a symbolic link?

To delete a symbolic link to a file or directory, the following command line syntax can be used

(in each case, "linkname" specifies the name of the symbolic link to be deleted):

  • For links to files:

    del linkName
  • For links to directories:
    rmdir linkName  
If you used mklink or mklink /h 
to create a symbolic link or hard link to a file,
then del will delete the link without affecting the target file.
 
If you used mklink /d or mklink /j 
to create a symbolic link or junction for a directory,
then it works like an empty folder.
You need to use rmdir to remove it. 
The target directory will be unaffected.
 
If you instead use del on the link or junction, then it works just like on any other folder:
you are prompted to confirm whether you want to delete all the directory's files (but not subdirectories).
The target directory's files will be deleted if you answer "y".
You can avoid the prompt if you use del /q.
 
In Explorer, if you delete the link or junction, that's all that will be deleted; 
the target folder is unaffected. 
 
This also applies to the Recycle Bin.
When moving the link or junction, you are prompted to confirm that you want to move the "folder".
But actually, only the link or junction will be put in the Recycle Bin, not the target folder.
the target folder is unaffected. 
 
In any case, if you explicitly delete the target file or folder,
then any symbolic links or junctions pointing to it will be left behind,
unusable until the target is recreated.
 
Any hard links to deleted files, or to files in deleted directories, will be unaffected.
 
In Powershell, don't use rmdir!
Use cmd /c rmdir .\Target instead.
I tested this myself and confirmed it here: 
 
 

mklink让网盘同步不同文件夹的更多相关文章

  1. 【Windows使用笔记】使Onedrive同步任意文件夹

    因为度盘实在是有点垃圾,经常看的剧之类的或者其他软件资源啥的动不动就被封. 所以跑去某宝买了一个5T的企业子账号,安全性不清楚,重要的隐私数据反正都用移动硬盘备份了.主要就是存一些资源性的文件吧.而且 ...

  2. Windows如何自定义U盘盘符、文件夹图标、文件夹背景

    自定义U盘盘符.文件夹图标.文件夹背景 注意对于Vista和Win7的用户不支持文件夹图标和文件夹背景的更换 1.自定义盘符:在U盘根目录下新建文件 autorun.inf(可先建.txt文本文档,再 ...

  3. Google Drive 和 Dropbox 同步同一个文件夹目录

     Dropbox 也是非常棒的同步工具,例如先进的增量上传或者更开放的 API 等.可是为什么不曾想过把 Google Drive 和 Dropbox 同时使用呢,我是说,让这两者同时云同步同一个文件 ...

  4. 坚果云无法同步SVN文件夹

    把svn的库放在云盘上,同步到本地,以前在金山快盘.360网盘都用得好好的,换坚果云后,想着肯定没问题,结果发现,不行! 新机子上的版本库可以建起来,但检出时报错: Could not open th ...

  5. Dropbox Folder Sync – 让 Dropbox 同步任意文件夹

    「DropBox」可以说是目前世界上最流行的线上同步工具,非常简单的同步方式, 流畅的档桉上传下载速度,让你可以轻易的在两台.三台电脑之间同步重要资料. 而你要做的步骤只是在每一台电脑安装DropBo ...

  6. 用SQL语句建库建表建约束(用SQl语句在指定盘符创建文件夹)

    一 :创建数据库 创建一个数据文件和一个日志文件(MySchool) create database MySchoolon primary      --默认属于primary主文件组,可省略(--数 ...

  7. 使用dropbox 同步任意文件夹(MAC)

    使用dropbox自动同步自己mac上的文件夹: -My_Programs /Users/foreverycc/Dropbox/My_Program # . must be full absolute ...

  8. 走进Linux01-磁盘分区与文件夹结构

    近期学习Linux,首先安装系统,遇到了磁盘分区.之前仅仅知道Linux分区是从/(根文件夹)開始的,至于磁盘格式,多块盘怎样挂载全然不了解,系统的查询了一下Linux磁盘分区和文件夹结构,整理一下. ...

  9. svn忽略不需要同步的文件夹或文件

    如果某个文件已经提交到了svn,这个时候需要通过svn来把服务器上的改文件删除,然后再在本地,点击该文件 选择把该文件删除,recursively表示递归删除(文件下->下级文件夹->下级 ...

随机推荐

  1. python网络编程-socket发送大数据包问题

    一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果.这就出现象第一次接受结果不全,第二次接果出现第一 ...

  2. (二)HtmlUnit 使用

    第一节: htmlunit 模拟浏览器请求 第二节: htmlunit 获取指定元素 第三节: htmlunit 使用代理 IP 第四节: htmlunit 取消 css,javascript 支持 ...

  3. Ubuntu 登陆循环启动 无法进入桌面 libGL error: failed to load driver: swrast

    导致无法进入Ubuntu图形界面的原因很多,关键是要找到问题原因所在. 最佳的方法是查看.xsession-errors这个日志文件,依据问题解决~ 这里先汇总一下问题: 1 环境变量导致的,进入tt ...

  4. VS Code折腾记 - (3) 多图解VSCode基础功能

    前言 想了想,对于一个刚接触VSCODE的人来说,有什么比图片更通俗易懂的呢? 启动界面 : 快捷键(Ctrl + Shift + E) Search && replace : 快捷键 ...

  5. IntelliJ IDEA 2018.2.2及以下版本破解方法

    破解文件下载地址:https://pan.baidu.com/s/1FKeGekyIHFUWaWi6tk2eEw =========================================== ...

  6. 使用mybatis-generator-core自动生成代码

    SSM框架可以使用mybatis-generator-core-1.3.2.jar来自动生成代码,以下是配置和使用的代码. generatorConfig.xml <?xml version=& ...

  7. android练习

    package com.example.wang.testapp2; import android.app.AlertDialog; import android.content.DialogInte ...

  8. winform框架源码-Devexpress开发框架

    链接: https://pan.baidu.com/s/1TnDj6qftGEUl3sTB8QXs_w 提取码: 关注公众号[GitHubCN]回复获取   开发模式:C/S C/S采用的是dev14 ...

  9. java8 - 5

    import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.Lis ...

  10. OpenCV持久化(一)

    在OpenCV中,采用FileStorage类进行数据持久化,可以采用XML或YAML格式存储数据. 将数据写入XML或YAML文件,可采用以下步骤: 1.创建FileStorage对象.可以调用构造 ...