C盘空间不足清理方法 之 Google Chrome 浏览器用户数据迁移和Windows10 默认浏览器路径失效修复

原理分析

将原来C盘的目录拷贝到其他盘,然后用mklink建立一个联接,这里贴下ChatGPT对于三种链接的解释

# 在Windows 10中,mklink是一个命令行工具,用于创建符号链接(symbolic link)或者硬链接(hard link)。它的基本语法如下:

mklink [/D | /H | /J] 新建链接 链接目标
# 参数解释:

# /D:创建一个目录的符号链接。默认情况下,mklink创建的是文件的符号链接。
# /H:创建一个文件的硬链接。默认情况下,mklink创建的是符号链接。
# /J:创建一个目录的联接(junction)。联接是一种特殊类型的目录符号链接,用于创建目录的硬链接。
# 新建链接:指定新建的符号链接或者硬链接的路径和名称。
# 链接目标:指定符号链接或者硬链接所指向的目标路径。
# 下面是一些示例:

创建一个文件的符号链接:
mklink "C:\path\to\link.txt" "C:\path\to\target.txt"
创建一个目录的符号链接:
mklink /D "C:\path\to\link_dir" "C:\path\to\target_dir"
创建一个文件的硬链接:
mklink /H "C:\path\to\link.txt" "C:\path\to\target.txt"
创建一个目录的联接(硬链接):
mklink /J "C:\path\to\link_dir" "C:\path\to\target_dir"

# 请注意,创建符号链接和硬链接需要管理员权限或者适当的权限。确保以管理员身份运行命令提示符或PowerShell窗口,以便成功创建链接。

三种链接的差异

在Windows中,有三种类型的链接:符号链接、硬链接和联接(junction)。它们在功能和使用方式上有一些差异。

  1. 符号链接(Symbolic Link):

    • 符号链接是一种特殊类型的文件或目录,它创建了一个指向目标文件或目录的链接。当你打开符号链接时,实际上是访问链接所指向的目标文件或目录。
    • 符号链接可以跨越不同的文件系统和驱动器,可以链接到文件或目录。
    • 创建符号链接时,需要指定链接的路径和名称以及链接的目标路径。
    • 删除符号链接不会删除目标文件或目录,只会删除链接本身。
  2. 硬链接(Hard Link):

    • 硬链接是文件系统中的多个文件入口,它们都指向同一个物理数据块。换句话说,一个物理文件可以有多个硬链接。
    • 硬链接只能链接到文件,不能链接到目录。
    • 硬链接只能在同一文件系统内创建,不能跨越不同的文件系统和驱动器。
    • 当你使用硬链接访问文件时,无法区分实际的物理文件和硬链接,它们是完全相同的。
    • 删除一个硬链接或原始文件都不会影响其他硬链接,只有当所有硬链接和原始文件都被删除后,文件的数据才会被释放。
  3. 联接(Junction):

    • 联接是一种特殊类型的目录符号链接,也称为目录联接。
    • 联接允许你创建一个指向目标目录的链接,就像一个别名一样。当你进入联接所在的目录时,实际上进入了目标目录。
    • 联接只能链接到目录,不能链接到文件。
    • 联接可以跨越不同的文件系统和驱动器,可以链接到目录。
    • 删除一个联接不会删除目标目录,只会删除联接本身。

总结:

  • 符号链接可以链接到文件和目录,可以跨越不同的文件系统和驱动器。
  • 硬链接只能链接到文件,只能在同一文件系统内创建。
  • 联接是目录符号链接,只能链接到目录,可以跨越不同的文件系统和驱动器。
  • 符号链接和联接创建时需要指定目标路径,而硬链接是基于文件的。
  • 删除符号链接或联接不会影响目标文件或目录,但删除硬链接或原始文件会影响其他硬链接的访问。

为何符号链接功能包含链接,还要使用链接呢?

实际上,符号链接和联接(Junction)在功能和用途上有一些区别,因此它们被同时保留是为了满足不同的需求。

  1. 目标类型:符号链接可以链接到文件和目录,而联接只能链接到目录。如果你需要创建一个目录的链接,用于导航到目标目录,那么联接是更适合的选择。

  2. 跨文件系统和驱动器的能力:符号链接可以跨越不同的文件系统和驱动器,允许你在不同的存储设备之间创建链接。而联接只能在同一文件系统内创建,限制了其范围。因此,如果你需要在不同文件系统或驱动器之间创建链接,符号链接是更适合的选项。

  3. 兼容性:某些应用程序或工具可能更适应于特定类型的链接。一些旧的应用程序可能不支持符号链接,只能识别和处理联接。因此,在某些情况下,联接可能是更好的选择,以确保兼容性。

综上所述,虽然符号链接在功能上更加通用,但联接仍然具有自己的特定用途和优势,因此在Windows中保留了这两种链接类型。具体使用哪种类型的链接取决于你的需求和场景。

扫描二维码关注公众号,回复: 16215160 查看本文章

什么叫做不同的文件系统

在操作系统中,文件系统是用于组织和管理文件的一种方法。不同的文件系统可能具有不同的结构、功能和特性。在Windows操作系统中,常见的文件系统包括NTFS、FAT32和exFAT等。

"同一文件系统"指的是多个存储设备或分区使用相同的文件系统类型。例如,如果C盘和D盘都使用NTFS文件系统,它们就属于同一文件系统。

而"不同文件系统"则表示不同的存储设备或分区使用了不同的文件系统类型。例如,如果C盘使用NTFS文件系统,而D盘使用FAT32文件系统,那么它们就属于不同的文件系统。

不同的文件系统可能具有不同的功能和限制。一些文件系统可能支持更大的文件大小、更高的文件系统容量限制,或者具有更好的安全性和权限控制等特性。因此,要在不同的文件系统之间进行链接,如符号链接或联接,通常是不可行的。

在创建硬链接时,硬链接必须在同一文件系统内创建,这意味着源文件和目标位置必须在相同的文件系统中。否则,无法创建硬链接。这是由于不同的文件系统可能具有不同的索引和数据结构,导致硬链接的创建受到限制。

因此,在你的情况中,如果C盘和D盘使用相同的文件系统(例如,均为NTFS),你可以使用硬链接来创建链接以保持系统访问文件的正常性。但如果C盘和D盘使用不同的文件系统,硬链接将不可用,你可能需要考虑其他的解决方案,如复制文件或使用其他类型的链接。

如果我有一个大文件F在C盘,我想迁移到D盘,怎么做?

如果你希望在将文件 F 从 C 盘拷贝到 D 盘后,保持系统访问文件 F 的正常性,你应该使用硬链接来创建链接。硬链接是文件系统中的多个文件入口,它们都指向同一个物理数据块。这意味着通过硬链接访问文件 F 时,无论是通过原始文件路径还是通过硬链接路径,文件 F 的访问都是一样的。

下面是创建文件的硬链接的示例:

mklink /H "D:\path\to\link.txt" "D:\path\to\F"

上述命令将在 D 盘的指定路径上创建一个名为 "link.txt" 的硬链接,指向文件 "D:\path\to\F"。

通过使用硬链接,你可以保持系统访问文件 F 的正常性,而不需要复制整个文件,节省了磁盘空间。值得注意的是,硬链接只能在同一文件系统内创建,因此确保 C 盘和 D 盘都属于同一文件系统。

请确保以管理员身份运行命令提示符或 PowerShell 窗口,以便成功创建硬链接。

 步骤

其他人写得很详细了,我就不搬运了,只记录几个关键点,下面是User Data,这个是搞不了的,暂时没找到哪里可以更改这个路径,所以只能把这个做成链接方式链接到H盘

 CMD的执行命令

 创建成功后,记得到路径下看看是否已经有一个快捷方式指向,链接很神奇的是,点击快捷方式,上面的路径仍然是C盘,让我以为没有迁移成功呢

 目录的开头仍然是C盘

 新装的扩展(extension),扩展是啥?举个例子就是有个网站有m3u8的视频,你装个扩展就可以下载了:https://chrome.google.com/webstore

 

 C盘空间也被节省了,创造链接的方式可以彻底解决C盘空间的问题呀

 出现个小问题,QQ和Telegram的链接点击没反应,是把Chrome搬到了H盘,而注册表中的路径仍然是原来的路径,需要修改注册表

 默认浏览器设置

 windows 10 打开注册表

要打开 Windows 10 的注册表编辑器(Registry Editor),可以按照以下步骤进行操作:

使用键盘快捷键 "Win + R" 打开运行对话框。
在运行对话框中输入 "regedit",然后点击 "确定" 或按下回车键。
这将打开注册表编辑器窗口,它显示了计算机的注册表层次结构。
另外,你也可以通过以下方法打开注册表编辑器:

点击任务栏上的 "开始" 按钮(通常是 Windows 图标)。
在开始菜单中,找到 "Windows 系统" 文件夹。
在 "Windows 系统" 文件夹中,找到 "注册表编辑器" 快捷方式,并点击它。
请注意,在打开注册表编辑器之前,确保你具有管理员权限。修改注册表项可能对系统造成不可逆的影响,因此在进行任何修改之前,请确保了解你所做的更改,并备份重要的注册表项或创建系统还原点以防意外发生。

编辑——查找,输入ChromeHTML,这个其他的的教程答案已经过时了,要搜索ChromeHTML,我这里搜索chrome.exe找了很久,还找出来一堆360的东西

 修改open——command中的值到你拷贝过去的路径下

猜你喜欢

转载自blog.csdn.net/wangsenling/article/details/131265511