学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这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 的区别。这里我直接贴一段我查到的东西:

  1. 创建

    • /d 可以使用相对路径方式创建
    • /j 必须绝对路径方式创建

      此区别意义不大,建议所有的mklink目录均用绝对路径创建
  2. 复制和剪切

    • 复制:/d /j 均生成源目录的内容副本,变为一般文件夹
    • 剪切/移动:
      • /d 生成的目录,移动到其他地方,仍旧保持链接,对源目录无影响,/d生成的目录消失。
      • /j 生成的目录,移动到其他地方,会产生一个新的副本文件夹,源文件夹内容全部移至新普通文件夹内,源文件夹清空,源文件夹仍旧存在,/j生成的目录也依旧存在
  3. 软件打开 用 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中的软链接硬链接等的更多相关文章

  1. linux文件系统软链接硬链接

    引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...

  2. Linux 软链接 硬链接 ln命令(繁杂版)

    注意:创建软连接的时候,要用绝对路径!!! 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln - ...

  3. Linux软链接硬链接的区别

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...

  4. linux中软连接和硬链接的区别

    linux中创建软连接和硬链接的方法: 软连接: ln -s oldfile slink 硬连接: ln oldfile hlink linux中创建软连接和硬链接的区别:        原理上,硬链 ...

  5. linux 软链接 硬链接

    查看文件sun.txt   加上参数i 是显示节点 inode [root@bogon test]# ls -li sun.txt 10006225 -rw-r--r--. 1 root root 0 ...

  6. Linux 软链接 硬链接 ln命令(简约说明版)

    注意:路径使用绝对路径!! 解决方法: 当我们需要在不同的目录下用到同一个文件时,会用到以下命令. 命令:ln 作用:为某一个文件在另外一个位置建立一个同步的链接 语法:ln [option] 源文件 ...

  7. Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接

    一 set_uid 之前我们修改普通用户的登陆密码,都是以管理员身份在操作,比如我们在lv账户下,我们使用sudo passwd lv 重置lv账户密码,此时我们直接拿到root权限忽略掉了文件权限的 ...

  8. 文件类型 | 命令ln | 软链接硬链接

    1.9文件类型 1.9.1常见文件类型 d:目录 -:普通文件 l:链接文件 b:设备 1.9.2文件后缀名 sh:shell脚本 tar.gz:压缩包 my.cnf:配置文件 test.zip:压缩 ...

  9. Linux 中软链接和硬链接的使用

    Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link). 硬链接和软链接 硬链接 --- ln 要链接的文件 新硬链接名 软连接 --- l ...

随机推荐

  1. CentOS7安装GitLab服务

    安装GitLab服务 1.安装必要依赖 yum install -y curl policycoreutils openssh-server openssh-clients postfix 2.下载安 ...

  2. layui 将后台传过来的值等价替换

    <th lay-data="{field:'opentime',width:'12%' , sort: true, align:'center',templet:'#roleTpl'} ...

  3. Spring Boot(一):环境搭建,建立简单项目

    一.基本环境搭建 1.下载IntelliJ IDEA :http://www.jetbrains.com/idea/ 2.拖到页面最下面下载旗舰版 3.新建项目 4.设置本地Maven 5.删除多于文 ...

  4. 【托业】【怪兽】TEST03

    101. engage  [ɪnˈgeɪdʒ]  v.参与 102. toner [ˈtəʊnə(r)]n.碳粉匣 103. surveillance [sɜ:ˈveɪləns]n.监控 105. i ...

  5. MySQL中0、'0'作为条件时的区别

    一.现象: 今天查询时,某字段x为varchar 可能的值为A B C 0 1 2 3 4 想把0 1 2 3 4的所有数据查出,使用的SQL为 select * from table where x ...

  6. linux pwd命令 显示当前所在路径

    pwd 显示当前所在路径 [root@MongoDB ~]# pwd /root

  7. 002-zookeeper 基本配置、安装启动 windows环境

    一. 概述 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂易出 ...

  8. layer倒计时弹框/弹层 DEMO

    layer.msg("提示语...", { time: 5000, shade: 0.6, success: function (layero, index) { var msg ...

  9. matlab多个曲面如何画在一个坐标系中的疑问

    matlab多个曲面如何画在一个坐标系中的疑问 [复制链接] [X,Y]=meshgrid(-3:0.1:3);Z=X.^2+Y.^2;mesh(X,Y,-Z)hold onmesh(X,Y,Z)

  10. 阿里云轻量级服务器上JDK及tomcat部署配置

    先下载JDK和tomcat到本地 地址为http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html ht ...