实现文件的硬链接

        好久不见,甚是想念

        主要是最近在做黑群晖就没来得及写文章()

        今天主要内容是怎么处理硬链接

        首先先明确一下硬链接的定义

硬链接(hard link,也称链接)就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录

注:上面的内容选自百度百科 硬链接_百度百科 (baidu.com) 

        通俗点来说,它是快捷方式的变种,不同以往的是,它的类型将不会显示“快捷方式”字样,且创建连接以后文件能正常使用且不会占用硬链接所在的硬盘空间

举个栗子

        我如果将C盘的“QQ”文件夹移动到D盘,并在C盘创建一个普通的“QQ”文件夹快捷方式,那么我将无法使用桌面上的“QQ.lnk”快捷方式打开“QQ”文件夹中的“QQ.exe”(将会提示找不到文件)

        但是我如果将C盘的“QQ”文件夹移动到D盘,并在C盘进行硬链接,那我仍可以通过桌面上的“QQ.lnk”打开QQ主程序(注意:此例子中桌面上的“QQ.lnk”快捷方式指向的路径始终不变)

        这就是硬链接的魅力:可以骗过大多数软件,而它们以为自己还在原来的位置,殊不知已经被我们通过手段进行了转移操作,这对一些大型软件十分友好

        再举个栗子

        我的电脑上安装了Adobe全家桶(大概87GB,数据来源于腾讯新闻),安装后我的电脑C盘满了,这时候我如果直接将文件转移到其他盘符,将会导致软件不可用,控制面板中无法卸载等致命错误(当然,你如果移动回去还能用:D),这时候硬链接就很方便了,我可以通过命令在C盘的Adobe原位置创建特殊的快捷方式,并将快捷方式重定向到D盘的Adobe文件夹

        其实大家也可以用一些不重要的软件试一试:D,如果直接使用快捷方式是不是会找不到文件呢

        通过硬链接之后,C盘的Adobe全家桶(此时已经转移到D盘)以为自己还在C盘,所以仍然能正常运行

        基本的命令块如下:

mklink /J "硬链接文件的本体位置" "创建快捷方式的位置\快捷方式名称"

        当然,也可以使用mklink /? 了解mklink的用法

        微软cmd给出的用法如下

创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      创建目录符号链接。默认为文件符号链接
        /H      创建硬链接而非符号链接
        /J      创建目录联接
        Link    指定新的符号链接名称
        Target  指定新链接引用的路径(相对或绝对)

而我们使用了/J参数,即创建目录联接

所以根据如上代码,我们可以“小小”的做一个bat命令行实现全自动mklink硬链接操作

代码如下,可直接复制

@echo off
title 硬链接批处理脚本
echo [调试信息]正在跳转目录至临时文件夹
C:
cd %temp%
echo [调试信息]正在写入状态至临时目录
set t=%time:~0,8% && echo [%t%] 调试信息:开始写入文件 >> 日志文件.txt
echo [调试信息]日志已记录
set t=%time:~0,8% && echo [%t%] 调试信息:日志已记录 >> 日志文件.txt
echo [调试信息]程序即将启动,请稍后......
set t=%time:~0,8% && echo [%t%] 调试信息:程序即将启动,请稍后...... >> 日志文件.txt
echo [调试信息]如果想直接进入菜单,请立即按下任意键,否则请等待5秒
set t=%time:~0,8% && echo [%t%] 调试信息:如果想直接进入菜单,请立即按下任意键,否则请等待5秒 >> 日志文件.txt
set t=%time:~0,8% && echo [%t%] 后台命令:timeout5秒 超时5秒 >> 日志文件.txt
timeout 5
cls 
set t=%time:~0,8% && echo [%t%] 后台命令:清除回显 >> 日志文件.txt
echo 欢迎使用硬链接批处理脚本,编码基于Windows自带的command(CMD)制成
echo 请根据步骤操作:
echo 输入你想在哪里创建硬链接→输入硬链接原位置(即本体文件的位置)→输入快捷方式名称即可生成
echo tips.直接将文件拖入cmd窗口可以自动填写路径哦
echo 生成完成后键入任意键继续进行生成
echo 如想退出请直接关闭窗口
echo log日志将生成在%temp%文件夹中,如果需要此日志文件可以win+R 输入%temp% 找到日志文件.txt
echo ========================================
set t=%time:~0,8% && echo [%t%] 后台命令:打印菜单完成 >> 日志文件.txt
set /p oldfile=请键入想创建快捷方式的位置(不包括快捷方式本身名称):
set t=%time:~0,8% && echo [%t%] 调试信息:用户选中的快捷方式存储点为:%oldfile% >> 日志文件.txt
set /p newfile=请键入本体文件的位置:
set t=%time:~0,8% && echo [%t%] 调试信息:用户选中本体文件存储点为:%newfile% >> 日志文件.txt
set /p name_of_file=请输入此快捷方式的名称(不包括扩展名):
set t=%time:~0,8% && echo [%t%] 调试信息:用户使用的快捷方式名称为:%name_of_file% >> 日志文件.txt
mklink /J "%oldfile%" "%newfile%\%name_of_file%"
set t=%time:~0,8% && echo [%t%] 调试信息:创建操作完成 >> 日志文件.txt
pause nul>0

在此段代码中,我加入了log功能,即日志文件

日志文件将会自动保存在%temp%路径下,如果需要可以将命令二次打包编译等操作

但请注明原作者或征得原作者(我)的同意方可做视频,二次编译,转载等操作

谢谢

我们下次再见!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值