巧用符号链接搬移C盘中的软件数据目录到其他盘

#工作记录

我们知道,在Windows11系统,有些软件是不能指定安装目录的,有些软件即使指定了安装目录可是在更新版本之后还是会安装到默认的C盘目录中(比如剪映),而且每次安装某些软件之后,这些软件都会在C盘的用户名目录下生成相关数据或缓存文件等文件,使用久了之后会导致电脑C盘空间紧张,比如Ollama、LM Studio、Docker、剪映等等,如果能安全的把这些文件或文件夹从C搬离,能节省C盘空间,并一定程度上也许能够更好的管理这些文件或文件夹。

这里用Docker的硬盘镜像数据目录举例,本来可以在设置里手动选择指定的,但是为了程序的正常运行和最大节省C盘空间,我还是决定尝试将C盘中的C:\Users\love\AppData\Local\Docker文件夹整体搬移到E盘中(这里可能有争议,但以下操作思路可以参考)。

以下是操作步骤:

一、先复制源文件夹到其他地方备份一次(最后要用到)

二、然后复制这个文件夹到想移动的目标目录


#如果不进行简单复制这一过程,则接下来的创建符号链接的命令会输出报错信息提示"(目标)目录不存在",也可以手动建新该同名文件夹,但是建议直接复制粘贴。

#比如我想搬移到E盘下,则复制粘贴到E盘下:

三、然后分别记录下 源目录 和 目标目录 的两个地址


源目录:

C:\Users\love\AppData\Local\Docker


目标目录:

E:\Docker

四、依次删除两个目录:

之前的备份操作在这时也显得相当重要。
如果不进行这个删除两个目录的操作,执行后边的创建符号链接的命令时,会输出报错信息“当文件已存在时,无法创建该文件”。

(一)删除源目录


#删除源目录
 

rmdir /s /q "C:\Users\love\AppData\Local\Docker\"

(二)删除目标目录


#删除目标目录

rmdir /s /q "E:\Docker\"

五、创建两个目录的符号链接

创建符号链接命令语法:

#mklink /d+空格+"源目录"+空格+"目标目录"
mklink /d "C:\Users\love\AppData\Local\Docker\" "E:\Docker\"

六、补救措施

如果设置错了,或者要改换目录,则要先删除已创建的符号链接,然后重新创建符号链接
删除已设置的这个符号链接:

要删除之前通过 `mklink /d` 命令创建的符号链接,可以使用以下方法:

方法一:使用命令行删除
1. 打开命令提示符:以管理员身份运行命令提示符。
2. 删除符号链接:使用 `rmdir` 命令删除符号链接。命令如下:
cmd
#命令语法rmdir+空格+"源目录"
rmdir "C:\Users\love\AppData\Local\Docker\"

   这里的路径是符号链接的路径。执行该命令后,符号链接会被删除,但不会影响目标路径 `E:\Docker\`。

方法二:通过资源管理器删除
1. 找到符号链接:在资源管理器中找到符号链接文件夹(`C:\Users\love\AppData\Local\Docker\`)。
2. 删除符号链接:右键点击该文件夹,选择“删除”。这只会删除符号链接,而不会删除目标文件夹。

 注意事项
- 删除符号链接时,不会影响目标文件夹的内容。
- 确保在删除符号链接时,路径是符号链接的路径,而不是目标路径。

七、把之前备份的源文件夹粘贴到目标目录

创建符号链接成功后,我们打开源目录所在路径和目标目录所在路径,发现两个目录都不存在了(有的会在启动软件后重新生成,有的会导致不能正常启动软件),这时不用着急启动软件,关键的一步来了:

需要把之前备份的文件夹,复制粘贴回目标录路径中,然后重启一下电脑(可选,但建议)使设置生效,之后可以启动软件进行测试了。

测试基本功能运行正常之后,把可以手动设置的路径再按软件引导重新选择一下,这样Docker在C盘下的"C:\Users\love\AppData\Local\Docker\"文件夹就完全搬移了,以后的镜像也只会下载到搬移后的位置。

并且回到Docker原先在C盘里的数据文件夹查看"C:\Users\love\AppData\Local\Docker\",可以看到如上图所示,已经变成“快捷方式”。还可以右键查看属性。

可以看到该文件夹已经指向目标E盘相关目录。

 到这里,Docker软件的C:\Users\love\AppData\Local\Docker文件夹已安全搬移到E盘。

 打开Docker之后测试功能也是正常的。

后记

其实用这个符号链接的方法,还可以搬移其他软件的数据或模型目录,只要遵循操作步骤操作就好了。弄错了也不怕,可以参考文中第六小节的补救措施,就是搬移前提到的第一步备份文件夹的步骤建议不能省,虽然可以在运行软件后自动生成,但万一搬移的是有较多重要配置文件的文件夹,备份一下还能恢复原先的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36575.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql的安装配置

目录 MySQL 简介 MySQL 的下载安装 mysql配置【默认以及下载好】 (1)配置环境变量 (2)修改配置文件 (3)以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够) …

登山第二十梯:无人机实时自主探索——我是一只小小小鸟

文章目录 一 摘要 二 资源 三 内容 一 摘要 自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方…

基于FPGA轨道交通6U机箱CPCI脉冲板板卡

板卡简介: 本板为脉冲板,脉冲板主要执行CPU下达的指令,通过实现各种控制算法来调节PWM,然后输出光纤PWM信号来驱动变频器功率模块以达到控制电机的目的。 性能规格: 电源:DC5V;15V FPGA&…

一键批量txt转DWG,DWG转txt——插件实现 CAD c#二次开发

如下图,我们有大量dwg需要转为txt格式,或txt格式坐标需要转为dwg格式,此插件可一键完成一个文件夹下所有文件的转换。 插件使用方式 命令行输入: netload 加载此dll插件, 输入: dwg2txt 可将dwg转为t…

【Unity基础】Unity中角色动画的三种实现方式

在Unity中,角色动画有三种不同的实现方式:逐帧动画(Frame-by-Frame)、剪裁动画(Cutout)和骨骼动画(Skeletal),各自适用于不同的场景和需求。以下是它们的核心区别及特点&…

Flutter中Align的使用说明

又失业了,作为一个高龄Android程序员今年找工作真难呀。现在Flutter是必需技能了,所以最近在自学。所用书籍叫《Flutter实战》,如下 如今已看了100多页,发现这本书写得……有点赶吧,好几处讲得不清不楚,而关…

leetcode hot100(五)

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你…

echarts+Vue2 自动轮播饼图

1、首先下载echarts,并且全局引入echarts 方法:从 npm 安装 npm install echarts 在 main.js 文件中全局引入 然后创建一个vue文件,名字随便起,比如 pieChart.vue,话不多说,直接上才艺:&…

自学软硬件第755 docker容器虚拟化技术

见字如面, 这里是AIGC创意人_竹相左边, 正在通过AI自学软硬件工程师,目标手搓可回收火箭玩具。 我很喜欢 《流浪地球 2》中 ,马兆:没有硬件支撑,你破解个屁。 写作背景 今天在剪视频,然后看…

单片机自学总结

自从工作以来,一直努力耕耘单片机,至今,颇有收获。从51单片机,PIC单片机,直到STM32,以及RTOS和Linux,几乎天天在搞:51单片机,STM8S207单片机,PY32F003单片机,…

模拟String基本函数/深浅拷贝/柔性数组

1.首先我们先关注一下ASCII&#xff1a; 记住常用每一个字符对应的ascii码值&#xff01; 2.string函数的相关操作函数代码&#xff1a; 大多数小疑问都已经写在注释里面&#xff01; #pragma once #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<a…

论文分享:PL-ALF框架实现无人机低纹理环境自主飞行

在室内仓库、地下隧道等低纹理复杂场景中&#xff0c;无人机依赖视觉传感器进行自主飞行时&#xff0c;往往会遇到定位精度低、路径规划不稳定等难题。针对这一问题&#xff0c;重庆邮电大学计算机学院雷大江教授团队在IEEE Trans期刊上提出了一种新型自主飞行框架&#xff1a;…

文档搜索引擎

实现的搜索功能 首先获取很多的网页,然后根据用户输入的查询词,在这些网页中进行查找 用户输入查询词之后,如何让查询词和当前的网站进行匹配? 首先获取很多网页(爬虫->一个http客户端,发送http请求获取http响应结果(就是网站))(批量化的获取很多的页面), 再根据用户输入…

自然语言处理入门4——RNN

一般来说&#xff0c;提到自然语言处理&#xff0c;我们都会涉及到循环神经网络&#xff08;RNN&#xff09;&#xff0c;这是因为自然语言可以被看作是一个时间序列&#xff0c;这个时间序列中的元素是一个个的token。传统的前馈神经网络结构简单&#xff0c;但是不能很好的处…

C++学习之QT实现取证小软件首页

实现效果 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QToolButton> #include <QLabel> #include <QMessageBox> #include <QDebug> #include <QHBoxLayout> #include <QTableView> #incl…

AI 数字人短视频数字人分身系统源码开发难点都有哪些?

AI 数字人分身系统源代码开发涉及多个领域的复杂技术&#xff0c;其难点主要体现在以下几个方面&#xff1a; 逼真的数字人建模 精确的人体扫描与重建&#xff1a;要创建高度逼真的数字人分身&#xff0c;首先需要对真实人体进行精确扫描&#xff0c;获取准确的人体外形、肌肉…

适合用户快速开发项目的PHP框架有哪些?

有时候用户赶时间&#xff0c;并想快速在有限的时间里&#xff0c;筑起自己的项目&#xff0c;对于适合用户快速开发项目的PHP框架有哪些推荐呢&#xff1f;下面一起来了解一下。 1. Laravel Laravel 是一个功能强大且语法优雅的PHP框架&#xff0c;提供了丰富的功能和工具&a…

物联网为什么用MQTT不用 HTTP 或 UDP?

先来两个代码对比&#xff0c;上传温度数据给服务器。 MQTT代码示例 // MQTT 客户端连接到 MQTT 服务器 mqttClient.connect("mqtt://broker.server.com:8883", clientId) // 订阅特定主题 mqttClient.subscribe("sensor/data", qos1) // …

进程间通信(1)——管道

1. 进程间通信简介 进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&#xff09;是指不同进程之间交换数据的机制。由于进程具有独立的地址空间&#xff0c;它们无法直接访问彼此的数据&#xff0c;因此需要IPC机制来实现信息共享、数据传递或同步操作。 …

台达PLC转太网转换的教程案例(台达DVP系列)

产品介绍 台达DVP-PLC自投身工业自动化市场以来&#xff0c;始终致力于创新发展&#xff0c;不断推陈出新。其产品紧密贴合市场需求与行业工艺&#xff0c;凭借卓越性能与丰富功能&#xff0c;深受用户青睐。不仅推出了高效的程序与编辑工具&#xff0c;显著提升了主机执行速度…