百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

好用的符号链接,利用mklink命令给C盘搬家

bigegpt 2024-08-05 11:45 2 浏览

初识符号链接

最近小编在鼓捣WebDAV的时候发现了一个Windiws上一个有趣又好用的东西:符号链接。Linux下的符号链接相信有不少小伙伴都比熟悉了,然而Windows上的符号链接就很少被提起了,像小编也是最近才知道。Windows系统上的符号链接全称为「NTFS符号链接」,是NTFS文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做"目标"。

符号链接的设计目的是为了增强兼容性的,首次出现在Windows Vista,较晚的更新时间加之当时已经有「快捷方式」的存在,所以也不太为用户所知。符号链接简单来说原理就像快捷方式一样,只不过快捷方式只能在Windows资源管理器中才识别为目录或文件,在其他系统和程序看来只是一个.link文件,而符号链接在系统中同样不占用空间,但却能被其他文件系统和程序识别并进行修改,对代理的改动就和修改目标文件(源文件)一样。

简单了解原理之后,想必大家已经想到不少利用符号链接来实现的功能了吧?小编最开始就是因为微软自带的IIS管理器无法映射驱动根目录作为虚拟目录,在网上进行了一番冲浪才发现这样一个「骚操作」,将需要映射的盘全都在WebDAV共享文件夹中创建了符号链接,解决了现实需求。

符号链接的具体实现方法是用命令提示符CMD中的mklink命令实现的(管理员模式运行),PowerShell中要先敲cmd进入cmd之后再使用mklink命令。现在我来一步步教大家怎样使用mklink命令创建符号链接:首先在在菜单界面搜索「CMD」,右键以管理员身份运行,这样就以管理员身份启动CMD了。

在mklink的帮助界面可以看到实际上可以创建三种类型的符号链接,下面小编来简单解释一下不同符号链接类型之间的区别。

/d目录符号链接:常用类型,可以为目录或文件创建符号链接;

/j目录联结:常用类型,为目录创建符号链接,像Win10的「开始菜单」、「我的文档等」就是目录链接;

/h硬链接:链接对象只能为文件且不能跨卷。

一般来说/h硬链接因为不能跨卷建立所以使用的比较少,不过它的特性却很适合将文件进行备份和避免误操作,硬

链接本质就是创建一个「入口」,删除一个文件只相当于删除了这个文件的其中一个「入口」,只有将两个文件同时删除才会真正在硬盘上删除。

/d目录符号链接和/j目录联结虽然本质上有区别,但在实际使用中最大的不同就是,目录联结只支持文件夹且不支持网络远程地址的引用,其他使用上基本可以等同。

给C盘搬家

说了这么多还是来解决一下实际问题-咱们来帮C盘搬搬家。在windows下,大多数软件会默认安装在C盘,即使自定义安装路径把软件安装到其他盘,还是会有很多软件用到的数据文件被塞到C盘,虽然可以利用软件或者到注册表修改默认安装路径以及数据存储路径,然而操作比较繁琐还怕引起软件稳定性问题。

小编的C盘就划了100G的空间,虽然也不少了,而且平时也很注意不往C盘装软件,但是Win10系统自动在C盘设置了虚拟内存,加上各种默认安装路径的软件和缓存,C盘剩下的空间就非常有限了,这时候除了清理垃圾之外还可以通过符号链接把C盘的文件搬到其他盘。

比如我想把默认安装到C盘的potpalyer转移到D盘里,而不影响桌面的快捷方式和正常运行。首先我们先找到PotPlayer的安装文件夹C:\Program Files\DAUM,然后把整个DAUM文件夹剪切到D盘(如果担心数据丢失可以先复制备份),此时C:\Program Files里就没有DAUM文件夹了(很重要)。

接着打开CMD开始输入符号链接命令:mklink /d "C:\Program Files\DAUM" "D:\Program Files\DAUM"(利用mklink /

j命令创建目录联结效果一样),然后回车,显示为C:\Program Files\DAUM <<===>> D:\Program Files\DAUM 创建的符号链接,这样就成功在C盘Program Files目录下创建了一个名为「DAUM」的符号链接了。

现在我们再打开C:\Program Files文件夹就能看到出现了一个带快捷方式符号的DAUM文件夹,不过不用担心这是一个符号链接而不是快捷方式,PotPlyer播放器仍然能正常的通过桌面快捷方式打开和使用,通过视频文件对播放器的调用也没有受到影响。打开文件夹的属性面板也可以看到DAUM此时是一个符号链接。

眼尖的小伙伴可能已经看到了,除了PotPlyer之外小编还利用符号链接把Adobe的默认安装文件夹也搬到D盘去了,这下又节省了6G的C盘空间,其他软件也同理。除了帮软件搬家之外,其他像一些默认在C盘的缓存文件夹,甚至是一些分国内、国际服的游戏都可以通过符号链接整合到一起,达到瘦身的目的,这就属于比较骚的操作了,我们以后可以单独来讲。


LinkShellExtension

毕竟使用mklink命令来建立符号链接需要自己手动敲,对不太熟悉命令提示符的小伙伴来说还是挺麻烦的,光是搞明白建立链接地址和目标路径命令的顺序可能就要死掉不少脑细胞,用批处理文件也不是太方便。于是小编又冲浪了一会,终于发现了一款能简单快速建立符号链接的软件:LinkShellExtension。

大家只需要在百度上搜索这款软件的名字,第一个就是它的官网了,点击Download就能下载,下载好之后语言选择中文接着就安装完成了。安装完成之后,LinkShellExtension的所有功能就集成在了右键菜单里。如果想为某个文件或者文件夹建立符号链接,只需要再资源管理器中选中目标右键「选择源连接点」,然后再打开到想要建立符号链接的位置,再空白处右击「创建为」>>「符号链接」,就成功在相应位置建立符号链接了。目录联结和硬链接的创建的操作方法也相同。

评论区的小伙伴还知道哪些符号链接的神奇用法呢?

(编辑:hnm)

相关推荐

程序员请收好:10个非常有用的 Visual Studio Code 插件

一个插件列表,可以让你的程序员生活变得轻松许多。作者|Daan译者|Elle出品|CSDN(ID:CSDNnews)以下为译文:无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发人...

PADS在WIN10系统中菜单显示不全的解决方法

决定由AD转PADS,打开发现菜单显示不正常,如下图所示:这个是由于系统的默认字体不合适导致,修改一下系统默认字体即可,修改方法如下:打开开始菜单-->所有程序-->Windows系统--...

一文讲解Web前端开发基础环境配置

先从基本的HTML语言开始学习。一个网页的所有内容都是基于HTML,为了学好HTML,不使用任何集成工具,而用一个文本编辑器,直接从最简单的HTML开始编写HTML。先在网上下载notepad++文...

TCP/IP协议栈在Linux内核中的运行时序分析

本文主要是讲解TCP/IP协议栈在Linux内核中的运行时序,文章较长,里面有配套的视频讲解,建议收藏观看。1Linux概述  1.1Linux操作系统架构简介Linux操作系统总体上由Linux...

从 Angular Route 中提前获取数据

#头条创作挑战赛#介绍提前获取意味着在数据呈现在屏幕之前获取到数据。本文中,你将学到,在路由更改前怎么获取到数据。通过本文,你将学会使用resolver,在AngularApp中应用re...

边做游戏边划水: 基于浅水方程的水面交互、河道交互模拟方法

以下文章来源于腾讯游戏学堂,作者Byreave篇一:基于浅水方程的水面交互本文主要介绍一种基于浅水方程的水体交互算法,在基本保持水体交互效果的前提下,实现了一种极简的水面模拟和物体交互方法。真实感的...

Nacos介绍及使用

一、Nacos介绍Nacos是SpringCloudAlibaba架构中最重要的组件。Nacos是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态DNS...

Spring 中@Autowired,@Resource,@Inject 注解实现原理

使用案例前置条件:现在有一个Vehicle接口,它有两个实现类Bus和Car,现在还有一个类VehicleService需要注入一个Vehicle类型的Bean:publicinte...

一文带你搞懂Vue3 底层源码

作者:妹红大大转发链接:https://mp.weixin.qq.com/s/D_PRIMAD6i225Pn-a_lzPA前言vue3出来有一段时间了。今天正式开始记录一下梗vue3.0.0-be...

一线开发大牛带你深度解析探讨模板解释器,解释器的生成

解释器生成解释器的机器代码片段都是在TemplateInterpreterGenerator::generate_all()中生成的,下面将分小节详细展示该函数的具体细节,以及解释器某个组件的机器代码...

Nacos源码—9.Nacos升级gRPC分析五

大纲10.gRPC客户端初始化分析11.gRPC客户端的心跳机制(健康检查)12.gRPC服务端如何处理客户端的建立连接请求13.gRPC服务端如何映射各种请求与对应的Handler处理类14.gRP...

聊聊Spring AI的Tool Calling

序本文主要研究一下SpringAI的ToolCallingToolCallbackorg/springframework/ai/tool/ToolCallback.javapublicinter...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockers...

在MySQL登录时出现Access denied for user ~~ (using password: YES)

Windows~~~在MySQL登录时出现Accessdeniedforuser‘root‘@‘localhost‘(usingpassword:YES),并修改MySQL密码目录适用...

mysql 8.0多实例批量部署script

背景最近一个项目上,客户需要把阿里云的rdsformysql数据库同步至线下,用作数据的灾备,需要在线下的服务器上部署mysql8.0多实例,为了加快部署的速度,写了一个脚本。解决方案#!/bi...