windows中的软链接硬链接等
学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这Windows的需求还是挺强的,之前Win10的体验并不是太好,不过时隔这么久,打算从7升级到10了,恰好系统也该换了。
首先是命令行的关注,在家里使用了太久的marjaro,逐渐转为开发,以前对windows的命令行不关注也变为关注了,PowerShell安装了scoop,可以一键安装不少工具了,但是有一个痛点就是,以前对用户目录不关注,但是linux用久了反而觉得用户目录好用挖,我想在在命令行下切到我快捷方式指向的目录,但是是不行的,然后了解了一下这方面,就像是linux下的软链接硬链接一样。
使用PowerShell
软链接
New-Item -ItemType SymbolicLink -Path C:\\image -Target C:\\source.txt
硬链接
New-Item -ItemType HardLink -Path C:\\image.txt -Target C:\\source.txt
Junction
windows中文件与文件夹是完全不同的两种类型,创建文件夹链接不可以使用 HardLink
,但是可以使用 Junction
New-Item -ItemType Junction -Path C:\\test\_image -Target C:\\test\_source
虽然powershell可以建立,但是命令还是很繁琐,cmd下有个工具mklink
使用CMD
cmd下有个好用的工具mklink
C:\\>mklink
创建符号链接。
MKLINK \[\[/D\] | \[/H\] |\[/J\]\] Link Target
/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录链接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径(绝对或相对)。
软链接和硬链接的区别
其实这部分和linux中的是差不多的
符号(软)链接(Symbolic link)
- 执行命令 mklink link_name target_name
- 创建链接后的图标和快捷方式很像
- 在系统中不占用空间
- 在文件系统中不是一个单独的文件
- 在操作系统层解析(!?)
- 如果源文件被删除了,链接就没用了
- 移除源文件不会影响符号链接
- 移除链接文件也不会影响源文件
硬链接(Hard link)
- 执行命令 mklink /H link_name target_name
- 在系统中占用的空间与源文件相同,但在系统中引用的是相同的对象(不是拷贝)
- 在操作系统层解析(!?)
- 图标和创建快捷方式的图标不同
- 移除源文件不会影响硬链接
- 移除硬链接不会影响源文件
- 如果源文件被删除,它的内容依然通过硬链接存在
- 硬链接文件的任何更改都会影响到源文件
快捷方式有何不同
首先不说快捷方式占空间, 软链接不占空间,还有我觉得很重要的区别是快捷方式带后缀.lnk
,是个文件,无法通过路径重定向到目标地址,反正我不太推荐这个,除非是建立到桌面方便鼠标点击的用户。
软链接和Junction的区别
可能你会疑惑 mklink
命令参数 /D
和 /J
的区别。这里我直接贴一段我查到的东西:
创建
- /d 可以使用相对路径方式创建
- /j 必须绝对路径方式创建
此区别意义不大,建议所有的mklink目录均用绝对路径创建
复制和剪切
- 复制:/d /j 均生成源目录的内容副本,变为一般文件夹
- 剪切/移动:
- /d 生成的目录,移动到其他地方,仍旧保持链接,对源目录无影响,/d生成的目录消失。
- /j 生成的目录,移动到其他地方,会产生一个新的副本文件夹,源文件夹内容全部移至新普通文件夹内,源文件夹清空,源文件夹仍旧存在,/j生成的目录也依旧存在
软件打开 用 filedialog 打开,/d生成的目录,地址栏会跳到源目录位置。 /J 生成的目录,地址栏不会跳到源目录位置。 用 FolderDialog 打开,两者相同。
整体来说,/D 更像一个快捷方式。
符号链接(Symlink,Softlink)是对文件或目录的引用,实际上符号链接本身是一个“记录着所引用文件或目录的绝对或相对路径”的特殊文件,通过符号链接的操作都会被重定向到目标文件或目录。
交接点(Junction),也称为“再分析点”,是 NTFS 3.0 及以上文件系统(Windows 2000 及以上系统)的特性,它是链接本地目录(可跨卷)的访问点,通过交接点的操作都会被系统映射到实际的目录上。通过建立交接点,可以在保证一个目录实例(目录的一致性)的前提下,允许用户或程序从本地文件系统中的多个位置访问此目录。
对符号链接和快捷方式的“读、写、遍历”等操作都会被重定向到目标文件或目录;但对它们的“复制、删除、移动、配置 ACL”等操作只针对自身;符号链接不但可以应用于本地系统,还可以应用 UNC 路径。
对交接点内文件和子目录的“建立、删除、修改”等操作都被映射到对应的目录中的文件和子目录上;
对交接点的“复制、粘贴、剪切、配置 ACL”,只会影响此交接点;
在同一卷内移动交接点,只会影响此交接点;但在不同卷间移动交接点,会将此交接点转换为正常目录,并且交接点对应目录下的所有内容都会被移动;
通过“资源浏览器(Explorer.exe)”和“命令行 del”等工具删除交接点时,会同时删除对应目录下的所有内容(但不会删除目录);可通过“linkd.exe /d”安全的删除交接点;但在 vista 及以后的系统中,对交接点的删除会被正确的处理。
你可以自己建立这两个后,在同卷和在不同卷间复制移动粘贴看看区别,就暂时我了解到的来说的话,我个人建议是使用/D
。
windows中的软链接硬链接等的更多相关文章
- linux文件系统软链接硬链接
引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...
- Linux 软链接 硬链接 ln命令(繁杂版)
注意:创建软连接的时候,要用绝对路径!!! 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln - ...
- Linux软链接硬链接的区别
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...
- linux中软连接和硬链接的区别
linux中创建软连接和硬链接的方法: 软连接: ln -s oldfile slink 硬连接: ln oldfile hlink linux中创建软连接和硬链接的区别: 原理上,硬链 ...
- linux 软链接 硬链接
查看文件sun.txt 加上参数i 是显示节点 inode [root@bogon test]# ls -li sun.txt 10006225 -rw-r--r--. 1 root root 0 ...
- Linux 软链接 硬链接 ln命令(简约说明版)
注意:路径使用绝对路径!! 解决方法: 当我们需要在不同的目录下用到同一个文件时,会用到以下命令. 命令:ln 作用:为某一个文件在另外一个位置建立一个同步的链接 语法:ln [option] 源文件 ...
- Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接
一 set_uid 之前我们修改普通用户的登陆密码,都是以管理员身份在操作,比如我们在lv账户下,我们使用sudo passwd lv 重置lv账户密码,此时我们直接拿到root权限忽略掉了文件权限的 ...
- 文件类型 | 命令ln | 软链接硬链接
1.9文件类型 1.9.1常见文件类型 d:目录 -:普通文件 l:链接文件 b:设备 1.9.2文件后缀名 sh:shell脚本 tar.gz:压缩包 my.cnf:配置文件 test.zip:压缩 ...
- Linux 中软链接和硬链接的使用
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link). 硬链接和软链接 硬链接 --- ln 要链接的文件 新硬链接名 软连接 --- l ...
随机推荐
- CentOS7安装GitLab服务
安装GitLab服务 1.安装必要依赖 yum install -y curl policycoreutils openssh-server openssh-clients postfix 2.下载安 ...
- layui 将后台传过来的值等价替换
<th lay-data="{field:'opentime',width:'12%' , sort: true, align:'center',templet:'#roleTpl'} ...
- Spring Boot(一):环境搭建,建立简单项目
一.基本环境搭建 1.下载IntelliJ IDEA :http://www.jetbrains.com/idea/ 2.拖到页面最下面下载旗舰版 3.新建项目 4.设置本地Maven 5.删除多于文 ...
- 【托业】【怪兽】TEST03
101. engage [ɪnˈgeɪdʒ] v.参与 102. toner [ˈtəʊnə(r)]n.碳粉匣 103. surveillance [sɜ:ˈveɪləns]n.监控 105. i ...
- MySQL中0、'0'作为条件时的区别
一.现象: 今天查询时,某字段x为varchar 可能的值为A B C 0 1 2 3 4 想把0 1 2 3 4的所有数据查出,使用的SQL为 select * from table where x ...
- linux pwd命令 显示当前所在路径
pwd 显示当前所在路径 [root@MongoDB ~]# pwd /root
- 002-zookeeper 基本配置、安装启动 windows环境
一. 概述 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂易出 ...
- layer倒计时弹框/弹层 DEMO
layer.msg("提示语...", { time: 5000, shade: 0.6, success: function (layero, index) { var msg ...
- matlab多个曲面如何画在一个坐标系中的疑问
matlab多个曲面如何画在一个坐标系中的疑问 [复制链接] [X,Y]=meshgrid(-3:0.1:3);Z=X.^2+Y.^2;mesh(X,Y,-Z)hold onmesh(X,Y,Z)
- 阿里云轻量级服务器上JDK及tomcat部署配置
先下载JDK和tomcat到本地 地址为http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html ht ...