NTFS links 是一款虚拟目录软件,举例说,比如把 C 盘下的 Program Files 指向 D 盘的 A 目录,那以后安装到 Program Files 的文件实际上是安装到 A 目录。
有读者询问
不知道有没有用过虚拟目录的软件?
就像 Linux下面的 Links,比如我把 C 盘下的 Program Files 指向 D 盘的 A 目录,那以后安装到 Program Files 的文件实际上是安装到 A 目录。。。
Cameos 同学给出了很详细的解答,我挑选出了 NTFS links,仅支持 NTFS,有兴趣的同学可以试试其它程序。
NTFS links 的使用是这样的,安装后,右键拖动任何文件/文件夹,在右键菜单中有 Creat Soft Link Here 选项,选中后就会出现一个名为 Soft Link to XXX 的文件,查看属性,大小也与原文件相同。但这个 Soft Link to XXX 是个虚拟文件,你在这里的所有操作都会被继承到原文件中,包括改名,删除。而在原文件中的操作也同样会继承到虚拟文件中。
附 Cameos 的详细解答 via
你说的这个链接,NTFS5 有类似的实现,但是要比 Linux 下面的 soft link/hard link 要差一些
把一个目录指向另一个目录,可以使用 NTFS 的 directory junction point 功能,这个功能微软只提供了 API 但在 explorer.exe/cmd.exe 里面没有提供直接支持,你可以下载 sysinternals 写的命令行工具 junction.exe,注意 rmdir junction point 时会删除实际的目录!如果只想删除 junction point 的话,要用 junction -d
如果是 Vista 的话,微软提供了一个命令 mklink,使用方法可见这里
如果喜欢图形界面的话,可以考虑开源的 ntfslinkext,或者免费的 NTFS links。(NTFS links 网页有个 Similar Tools,下面还有几个)
下载(148KB): boxstr | 来自小众软件 | filefront | skydrive | brsbox
来自小众客栈,感谢 Cameos
沙发
大腿
板凳
很怀疑云端是不是采用的类似技术啊
@smile_bug, 很有可能,云端的本地缓存可用直接看到可执行程序
@scavin, 去端不知道小众,试过像AUTOCAD这种大型软件能在去端中运行吗?您用过吗?
@网扎小折,其实是一样的,只不过云端把程序放在了一个不容易找到的地方,运行起来都没问题。
@smile_bug, 不是,云端用的是虚拟化技术~
@booman, 我觉得云端用的是沙盘的内核 因为我装了sandboxie再装云端就直接运行不了任何里面的程序
@fafall,
我的sandboxie与云端可以同时运行。
你的意思是不是在sandboxie里再安装云端?那确实不能运行。
所有需要底层驱动的软件都不能在sandboxie里正常运行,不过不能说明所有需要底层驱动的软件都使用沙盘的内核。
还是改注册表实用…虽然麻烦…呵呵!
@wqdsa,
怎么修改啊
vista里见过这种目录, 在xp或2003中能用这种东西吗?
@wt, 可以
不知这个和Link Shell Extension有什么分别?
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
@TT, 同问,我用的也是这个Link Shell Extension,个人觉得相当好~~
Me three…
Link Shell Extension同样是免费的,而且功能远不止建立虚拟目录,还包括文件和hardlink以及分区的虚拟(其实使用的是NT系统的分区装载入NTFS目录的功能,类似Linux/UNIX系统的mount)等
但是要比 Linux 下面的 soft link/hard link 要差一些
NTFS也有softlink,sumbolink和hardlink
貌似蛮不错的 下来试试看…
能不能介绍个虚拟资源管理器呢?就像Xplorer2里的虚拟收集窗口那样.
vista里c:盘不能访问的documents and settings的“快捷方式”是不是就是一个link?
看来windows中有mount功能就是好呀
可否再把 A 目录指回 C:\Program Files?
@李二嫂的猪, 好主意,可以试试
感觉很神奇的软件嘛,应该挺有用
还不错,比起Subst的功能又进步了一点
唔,有什么意义呢?
@scorpio, 同问。
可能普通使用者实在是用不到。
这个用的到支持一个
感觉就是快捷方式。。
windows的工具集里有个junction,可以建立软链接好像
这个不错啊,试试。
这下方便多了。
能不能link单个执行exe文件呢?
@booman, 可以
NTFS Link 存在一点问题
作用于 文件夹 create soft link
作用于 文件 create hard link
但是一旦删除 soft link ,源文件夹的里面的文件也全部被删除
应当有一个 remove soft link 的功能才行,不然很容易误删
@kingsix, 不会啊,删除 soft link 不会删除原文件的
@scavin, 你可以试一下了
建一个包含文件的文件夹,建立soft link,然后直接删除这个softlink,放到回收站再删除,原文件夹里的文件同时也被删除
估计是跟删除文件夹这个过程有关,需要先清空文件夹里的内容
@scavin, 本身hardlink是没有问题的
@scavin,
我估计NTFS Link是调用了junction这个API,而简单的删除soft link并不调用junction -d这个功能
就像你原文提到的:
把一个目录指向另一个目录,可以使用 NTFS 的 directory junction point 功能,这个功能微软只提供了 API 但在 explorer.exe/cmd.exe 里面没有提供直接支持,你可以下载 sysinternals 写的命令行工具 junction.exe,注意 rmdir junction point 时会删除实际的目录!如果只想删除 junction point 的话,要用 junction -d
@kingsix, 我在测试的时候倒没注意到这个问题
@scavin, 目前如果用NTFS Link的话,需要删除soft link需要将源文件夹改名,再删除,才不会删除里面的内容
这里有一个比较可以解释这种情况
http://www.geekinterview.com/question_details/18110
Hard Links :
4.Removing any link ,just reduces the link count , but doesn’t affect other links.
Soft Links(Symbolic Links) :
4.Removing soft link doesn’t affect anything but removing original file ,the link becomes “dangling” link which points to nonexistant file.
@kingsix,
你测试过么,真的会删除原文件夹么
可是我测试结果是不会删除掉原文件夹的
_______________________________________________
我看到很多网友和网页评论,都说在删除junction link的时候会一并删除掉原文件夹,如本页正文中所说:
“注意 rmdir junction point 时会删除实际的目录!如果只想删除 junction point 的话,要用 junction -d”
可以,我今天微软的网站下载了sysinternals 的命令行工具 junction.exe, 照上面的方法建立了junction link,然后删除,无论是在explorer中shift+del,还是用rmdir junction point ,都没有删掉原文件夹呀.
我真的怀疑很多人根本没做过测试,别人说什么也就信了,别人写什么就直接ctrl+c,v过来了.
如果大家不信的话,可以去试验下,下载网址
http://technet.microsoft.com/zh-cn/sysinternals/bb896768(en-us).aspx
而且这个版本是2007.7.24发布的~
@战神, 当然测试过,每个字都是我自己敲进来的
文件夹是不会删除,但是源文件夹里的文件会丢失
你不要拿个空文件夹这么简单的情况做了测试就不负责任的来发表结果
刚刚测试了一下hard link其实也有问题
如果对于一个文件建立了hard link,当修改任何一个文件后,另外一个不会相应的修改,并且会被设置为隐藏属性
相对来说这个软件的实用性还是不够
提醒各位使用的时候注意
反复测试比较了一下本文及回复里面的其他几个工具,总结一下
1. Alax.Info.NTFS Links 小众提供下载这个,softlink的删除是比较危险的
2. 开源的 NTFS Link 由于安装过程卡巴一直报木马放弃测试
3. TT提到的Link Shell Extension,非常强大,解决了softlink删除的问题
另外有个不明白的问题,希望有人解答
如果hardlink只是克隆,而无法实现对同一个数据源的引用和同步,实用性到底在哪里?
@kingsix, 这个问题我也想过,但没想明白。。。
或许是为了某些情况下的节省空间,比如云端的技术
@kingsix, 我严重怀疑云端使用的就是这个技术
@scavin,
不过云端可以完全不依靠NTFS文件系统。如果这个技术必须要NTFS文件系统,就可以排除云端的嫌疑了。
@kingsix, hardlink不是克隆 而是两个文件指向一个磁盘位置
@fafall,
没错我已经有试过了,是对同一个物理地址的数据存取,因此数据是可以同步的
我之前得出那个结论是用doc文件做的测试,word自身的问题,修改一个文件的时候会把原文件改名成一个临时文件(隐藏属性),保存的时候再用原文件名储存一个新文件,因此如果a.doc的hardlink为b.doc的话,改动b.doc之后,a.doc会和那个临时隐藏文件链接,并获得隐藏属性,关闭word之后,隐藏文件删除,此时a.doc和b.doc没有关系了
可能还有其他好多应用程序也都是采用这种方式来存取文件的,因此hardlink之后并不能保证绝对的同步
我测试了一下几个软件 也查了下资料 这里把心得发出来
NTFS links 安装后要重启 就直接略过
Alax.Info.NTFS Links 这个比较好 经过测试其实不用安装 把其中的NtfsLinks.dll这个文件提取出来注册一下就能用了 反注册就是卸载 和flb一样方便
差了一下资料,原来xp的磁盘管理里,把分区装入空白NTFS目录下就是用的这个功能
另外 只有文件夹可以跨分区链接 文件不可以
但是文件链接可以随便删除源文件或者链接文件 而不影响另外一个
从名称上一个叫soft link 一个叫hand link也能区分出来
最后 说一下删除 其实很简单
1、在dos下用rd命令删除 就不会删除到源目录下到文件(同时dos下还能查到这个目录的类型不是dir 而是JUNCTION)
2、用fastcopy的删除功能也能直接删除目录而不影响源文件
@fafall,
其实Hardlink Shell Extension比alax这个更好
对于建立的junction point在windows gui下就能区别,并且属性里能够看到引用源的信息
hardlink更是能看到link count和枚举全部引用
最好的一点是对文件系统下的删除进行了截获,当被删除对象为junction point时,只是断开链接,而非删除源数据
开源的NTFS Link这个相比HSE还有点进步的是,junction point可以被随意的剪切和复制
@kingsix, 首先 alax的安装卸载很方便 注册或者卸载一个dll就行了 不像ntfslink还要重启
其次 这种链接其实不常用 我觉得最有用的情况就是把c盘的program files目录转移到其他分区 删除以及剪切的操作其实没什么必要 所以我还是觉得alax的好
当然如果使用频繁还是另外两个好
@kingsix, 当然这个肯定跟使用目的有关,我主要的用途是数据按多种关系重新组织,所以softlink能否自由删除剪移动切复制都很重要
而且hardlink的空间节省和数据同步对我就相当有用,只是很多软件对于大文件的读取和储存机制导致hardlink不能很好的适用,这点比较商脑筋
Hardlink Shell Extension安装也不需要重启,没有什么不方便的
对于大多数用户来讲,最好不好使用alax的,毕竟数据是宝贵的
另外你所说program files转移到其他分区,由于跨分区也只能是softlink,实际数据还在c盘,即便真要这么做,前面有人提到还不如改注册表或者专门系统文件夹修改的软件,把系统默认的应用程序指向其他分区好了
如果是用来转移零散的数据,相当于一个容器的作用还是很好用的
貌似windows自带的磁盘管理就可以做到,玩孢子的时候做过映射…
首先,NTFS Links的功能和使用方法是——请跳到本文末尾,那里有小众软件的介绍。
你一定很奇怪,为什么要先不把功能和使用方法放到开头,先介绍,再说明,这是逻辑。
好吧,我告诉你,原因就是:转载小众软件的介绍=(ctrl+c)+(ctrl+v),很简单;而由我自己写,要一个一个字打出来,再者我打字很慢,所以我的字很精贵(此词库没有精贵一词?我打“精贵”,它出来“糟蹋”,唔呼汉语!)。现在的廿一世纪,没有人看后面的东西,除非你写的很好看,好看得像王小枫/波同志,我不复姓王小,所以为了让人民群众(此词库没有人民群众,只有人以群分,很是反动!)看到我的一字一句写出来的精华,我断然决定要把我自己写的提到上面来。这是何等睿智和英明!
言归正传,这个软件的作用的是,我很喜欢阿娇,特别是她演的《我的摄影男友》,我也很喜欢吃大葱,我真的想不为什么有人不喜欢吃大葱。
啊呀~谁扔的砖头!我招,我统统招,我买的白菜三毛五太黑了,我进的是城北王二狗的货根本不是我自己种的,我进价才一毛二,我对不起党对不起人民对不起王二狗和他老婆孩子大舅二大爷……
那个,这个软件的作用啊,
1.假设你的硬盘不大,只有40G(大家注意,在这里我用了“假设”这个词,是为了避免伤害小硬盘用户的感情),而你又觉得分区多有面子,于是你分了四个区,也就是你每一个区只有10G了(其实远远不到,为什么,问该死的硬盘厂商去)。
2.同时,假设你又是个AV爱好者(大家又注意了,在这里我又用了“假设”这个词,是为了避免伤害某些人(人发ING二声)的感情,我还用了英语AV一词,用英语就显得我特有才),你有36GAV(还有4G是什么?废话,你不装系统了?)。
3.一般情况下,为了躲避GF/老妈/Pol.lice/FXG的无所不在的李老师的查看,你会把AV尽可能藏在深处,而且十分分散,于是就有个这样一个局面,你的AV分散在CDEF盘的几个不同的深层目录中,比如C:\X\XX\XXX\XXXX和D:\Y\YY\YYY\YYYY中。每次想享受时,你都要打开重重文件夹才能XX和YY,颇为麻烦,时间一久,你看着自己满满的硬盘空间,都不知道放在哪儿了。
4.有个程序员和你有同样的困扰,于是他发明了NTFS Links。
5.有了NTFS Links,你可以把你分散的XXYY文件夹(目前只能是文件夹)虚拟到某一个位置,比如“E:\激荡三十年,改革开放风云录\改革春风颂\第一部:在摸索中前进\解放身体思想大讨论”中,这样,你每次就只用打开一个文件夹,就能XXYY了,而保存新文件时也可以直接选择虚拟的文件夹,效果就好像是有个40G的E盘一样。
6.最后,需要注意的是,你如果需要被虚拟的删除文件夹,你还是要到原目录中执行操作。
@路人之一,
讲了这么大一堆,其实用快捷方式就搞定了。
soft link主要还是给程序用的,因为基本上所有程序都把文件夹的快捷方式认成一个文件而不是文件夹,而会把soft link认成文件夹。
对于人来说,快捷方式反而更直观清楚灵活。
哈哈,现在才看到,想不到有这么多人在用这东西。
怎么才能取消链接呢? 我原本的想 把 ..\Local Settings\Application Data 目录虚拟到E盘,期待安装Chrome的时候可以安装到其他盘,但实际上并不好使…… 然后也不能取消链接了…..不知道有什么办法
我看到很多网友和网页评论,都说在删除junction link的时候会一并删除掉原文件夹,如本页正文中所说:
“注意 rmdir junction point 时会删除实际的目录!如果只想删除 junction point 的话,要用 junction -d”
可以,我今天微软的网站下载了sysinternals 的命令行工具 junction.exe, 照上面的方法建立了junction link,然后删除,无论是在explorer中shift+del,还是用rmdir junction point ,都没有删掉原文件夹呀.
我真的怀疑很多人根本没做过测试,别人说什么也就信了,别人写什么就直接ctrl+c,v过来了.
如果大家不信的话,可以去试验下,下载网址
http://technet.microsoft.com/zh-cn/sysinternals/bb896768(en-us).aspx
而且这个版本是2007.7.24发布的~
@战神, 目标文件夹没有删除,但是目标文件夹里的文件被删除了!——-谨慎!!!
要是以不同的终端用户登录,同一个目录能自动虚拟到不同的目录就好了 :)
比如:
用终端用户A进入,则 c:\mmm 实际就是 d:\A
用终端用户B进入,则 c:\mmm 实际就是 d:\B
…
现在只要映射了,不管哪个终端用户进入都是同一个目录,这点需要改进
这个功能我正好需要 用影子系统许多用户设置文件都不能保存
vista 用 mklink
xp 用 junction
功能还强大…
hoho,意外在这里收获了junction.exe,简单够用。我的目的很简单,让程序将虚拟目录当成目录而不是文件。windows自带的lnk快捷方式做不到。
另,验证过了,用junction映射后,删除映射目录不会删除里面的文件。
[…] NTFS links – 虚拟目录的软件 可以将任意目录连接到 My Dropbox […]
[…] NTFS links – 虚拟目录的软件 可以将任意目录连接到 My Dropbox […]
想询问如果像使用映照的方式来建立虛拟目錄的情況下。
像电脑裡有防毒软体在扫描这类的结构就会变成一直回在那,不能扫描。
然后如果我有50个虛拟目錄未来在搬移主机的情況下,好像会变成得在另一台主机重新建结构~
这款软件支持win7 64位么?我安装了之后右键拖动文件夹没有出现Create soft link here选项
@oresa, mklink “F:\目标文件夹” “E:\源文件夹” /j
vista和win7下用“mklink /d 链接名 源目录名”
这样生成的软链接,想删除的时候直接右键删除就可以,不会删掉源目录及其内容
一贯的支持哦
我用它来把QQ下载的图片缓存转移到内存虚拟盘,很好用!关机重启后那些垃圾图片全无踪影!