![确定程序是否“实际使用”连接点](https://linux22.com/image/1347081/%E7%A1%AE%E5%AE%9A%E7%A8%8B%E5%BA%8F%E6%98%AF%E5%90%A6%E2%80%9C%E5%AE%9E%E9%99%85%E4%BD%BF%E7%94%A8%E2%80%9D%E8%BF%9E%E6%8E%A5%E7%82%B9.png)
我成功 (?) 在 Iron 浏览器使用的缓存文件夹之间设置了连接链接,使其指向 RAM 驱动器上的另一个文件夹,但当我查看两个文件夹的内容和大小时,它们完全相同。我以为连接会“强制”或重定向程序以利用目标而不是源。这到底是怎么回事?为什么两个文件夹完全相同?我如何知道程序是否实际使用了目标文件夹?
答案1
- “为什么两个文件夹一模一样?”
- “但为什么两个文件夹中都充满了相同的文件呢?”
我的印象是你不清楚连接点是什么。
创建连接点时,您实际上并没有创建新文件夹。粗略地说,它只是现有文件夹的“快捷方式”。一个文件夹中的每个操作都会在另一个文件夹中发生,因为它是一个交叉路口。
它们不是两个不同的文件夹。而是相同的文件夹,具有两个不同的名称和/或路径。想象一下有两扇不同门的房子。里面的房间和房间里的东西都是一样的。对吧?
正如您所说,这些文件夹是“同步的”,因为:它们实际上是同一文件夹。如果您从连接点删除所有文件,则原始文件夹将为空。出于同样的原因,连接点不会占用驱动器上的更多空间。
查看关于硬链接和连接链接的解释在 Microsoft MSDN 上:
硬链接是文件系统中文件的表示,通过它,同一卷中的多个路径引用单个文件。(...) 对该文件的任何更改都会立即被通过引用它的硬链接访问它的应用程序看到。(...) 但是,目录条目大小和属性信息仅针对进行更改的链接进行更新。(...) 连接点(也称为软链接)不同于硬链接 [因为它链接] 目录 [而不是文件,它甚至可以链接] 位于同一台计算机上不同本地卷上的目录。
- 我如何创建连接点?
mklink /j junction originalfolder
其中“junction”是正在创建的连接点的名称,“original folder”是它将指向的文件夹的名称。(请注意,原始文件夹必须存在,并且连接点必须不存在)。
- 我如何知道某个文件夹是否为连接点?
dir /a
<JUNCTION>
应该给出包含相应行的结果。
- 我怎样才能移除连接点?
rd
像删除普通文件夹一样使用它
笔记:如果删除原始文件夹,连接点仍会存在,指向无处并在您尝试打开它时返回错误。