命令:
mklink
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
由于onedrive在同步文件时,仅仅会对一个文件夹进行同步更新,我的目的是让他同时对其他文件夹也进行更新同步,但是无须放在onedrive目录下面:
示例:
λ mklink /j "G:\Onedrive_Admin@ZlSEC\OneDrive - 湛蓝\test1" C:\Users\fuck\Desktop\CVE-2020-16898--EXP-POC-main"
为 G:\Onedrive_Admin@ZlSEC\OneDrive - 湛蓝\test1 <<===>> C:\Users\fuck\Desktop\CVE-2020-16898--EXP-POC-main 创建的联接
mklink /j onedrive目录 原始目录
执行命令后,onedrive提示已经上传更新:
切回来看:
test1是创建的符号链接,sec_gay是创建的快捷方式;两个图片是一样的,但是效果完全不一样:
快捷方式仅仅上传了.lnk文件。
而且经测试,在修改原始目录或目标目录时,两个文件夹会同时变动:
当原始目录删除时,目标目录也无法 打开:
但在onedrive云端,还能找到该原始目录的文件:
(mklink /d 则都会被删除)
当在目标目录删除该文件夹时,云端将同步删除:
可用于本地文件临时上传后,将本地文件删除掉,节省空间,比如上传电影什么的,都是很OK的。
拓展阅读(点评/知识):
目录符号链接和软链接的区别在于,软链接在创建时会自动引用目标目录的绝对路径,而符号链接允许相对路径的引用,
如分别用 mklink /D dira tdir 和 mklink /J dirb tdir 创建 dira、dirb 对 tdir 的符号链接和软链接,
之后将 dira、dirb 移动到其它目录下,则访问 dira 时会提示“位置不可用”,访问 dirb 时仍然正常指向 tdir;
而分别用 mklink /D dira c:\demo\tdir 和 mklink /J dirb c:\demo\tdir 创建 c:\demo\tdir 的符号链接和软链接,
再将这两个目录链接移动到其它目录下,则 dira 和 dirb 均可正常指向 c:\demo\tdir;
由此可见当创建目录链接时对目标目录使用绝对路径,D 和 J 两个参数实现的目录链接效果是一样的
本文标题: | windows下的mklink符号链接 |
本文链接: (转载请附上本文链接) | https://vulsee.com/archives/vulsee_2021/0604_14498.html |