windows@文件系统链接@快捷方式@快捷键方式和符号链接及其对比

abstract

  • 介绍快捷方式创建,用途,管理和应用场景
  • 快捷方式和符号链接的比较

在 Windows 系统中,传统的快捷方式(Shortcut)和符号链接(Symbolic Link,JunctionLink,后者又称为连接点,两者存在一定区别)都是用来创建指向文件或目录的链接,但它们有不同的特点和使用场景。

符号链接(Symbolic Link)、硬链接(Hard Link)、连接点(Junction Point)等这类技术统称为文件系统链接(File System Links)。它们是操作系统用于管理文件和目录引用的不同方式,允许在文件系统中通过不同路径引用相同的文件或目录。

  • 符号链接:基础特性类似于快捷方式,但拥有其他不同的特性,指向一个目标文件或目录,具有一定的灵活性,可以跨文件系统使用。
  • 硬链接:指向相同的文件数据块,在删除原始文件时,硬链接依然有效,因为文件的数据依然存在。
  • 连接点:主要用于指向目录,和SymbolicLink很相似,但是存在权限和平台兼容性上的区别,可以让不同路径访问同一个目录,常用于 Windows 系统。

快捷方式

如何创建快捷方式

快捷方式的作用

  • 快速访问目标:通过双击快捷方式,用户可以快速打开文件、文件夹或程序,而不必导航到其实际位置。
  • 保存目标的相关信息:快捷方式文件不仅保存了目标对象的位置,还可以包含启动该对象时的一些自定义参数和设置,比如工作目录、窗口状态、快捷键等。

快捷方式的构成

一个快捷方式文件包含以下关键部分:

  • 目标位置(Target Location):实际指向的文件、文件夹、程序或 URL 的路径。
  • 起始位置(Start In):应用程序启动时使用的工作目录。
  • 快捷键(Shortcut Key):为该快捷方式分配的键盘快捷键,按下该键可以直接激活快捷方式。
  • 运行方式(Run Mode):可以选择窗口状态(如正常窗口、最小化、最大化)来运行目标程序。
  • 图标(Icon):快捷方式的图标,可以自定义图标文件以区分不同快捷方式。
  • 描述(Description):对快捷方式的简要说明或备注。

快捷方式的管理

快捷方式的管理相对简单:

  • 重命名:快捷方式的文件名与其目标对象的文件名无关,用户可以自由命名。
  • 删除:删除快捷方式文件不会影响目标文件,快捷方式本身是一个独立的引用文件。
  • 更改目标:右键点击快捷方式,选择“属性”,在目标字段中修改目标位置,从而更新快捷方式指向的文件或程序。

快捷方式的高级用法

快捷方式不仅仅是指向文件的简单工具,还可以用在一些更复杂的场景中:

  • 使用参数启动程序:在快捷方式目标的路径后,可以添加命令行参数,控制程序启动时的行为。例如:"C:\Program Files\example.exe" /fullscreen
  • 启动不同用户的程序实例:在快捷方式中,可以使用 runas 命令以不同用户身份运行某个程序。
  • 创建网络快捷方式:快捷方式不仅可以指向本地文件,还可以指向远程网络位置,如 Web URL 或共享文件夹。

对比👺

快捷方式与符号链接的区别

虽然快捷方式和符号链接都有类似“指向”的概念,但它们工作方式有显著不同:

  • 快捷方式是一种文件级别的链接,它是一个包含目标路径的特殊文件,并不直接在文件系统层面映射目标文件。快捷方式更多的是为用户提供方便的入口,而目标文件本身不会被快捷方式的状态影响。
  • 符号链接是一种文件系统级别的链接,它在文件系统中创建一个指针,指向实际文件或目录。操作系统会将符号链接当作实际文件来处理,甚至命令行或程序也可以通过符号链接访问目标文件。
功能快捷方式(Shortcut)符号链接(Symbolic Link)
操作方式指向目标文件的快捷入口,属于文件类型文件系统层面的链接,作为目标文件的别名
创建方法通过右键菜单或手动向导创建,或命令行创建(较复杂)通过命令行 mklink 命令,或者powershell的New-Item 创建
权限要求不需要管理员权限通常需要管理员权限,win10之后可以启用开发者模式或者配置策略允许非管理员创建符号链接
跨分区可以跨文件系统创建可以跨文件系统(仅符号链接SymbolicLink)
操作对象主要用于文件、文件夹、程序和 URL可以用于文件和目录
无缝访问仅用于图形化界面,命令行工具无法将快捷方式视为目标本体那样做操作文件系统级别的链接,直接指向目标文件或目录.命令行、程序和 GUI 都可以使用,很多操作仿佛直接操作符号的目标本身一样
显示显示为带有箭头的小图标,扩展名 .lnk显示为带有箭头的小图标,无扩展名(或者说统一为.symlink);主要JunctionLink无法作用于文件上,只能作用于目录上,因此没有.junlink这类东西
路径解析存储目标路径,Windows 解析路径来定位目标操作系统在访问时自动重定向到目标路径
相对路径的支持缺乏支持(TargetPath无法使用相对路径)较新版本中支持
独立性删除快捷方式不影响目标文件或目录删除符号链接不影响目标文件或目录
磁盘占用常见大小为1KB,2KB(如果路径长一些,会大点)几乎是0KB
重要特点对于路径型快捷方式,主要有explorer(资源管理器来解析);其他软件会认为快捷方式(.lnk)就是个普通文件;
可以作为某些命令行的启动方式,比如创建一个利用vscode 打开指定目录的快捷方式;
指定特定的软件运行或打开特定的文件(利用Argument)
专注于路径;
能够被explorer的软件当做目录来跳转和使用
使用场景常用于桌面、开始菜单等位置创建访问快捷方式,存放到开机自启目录中实现自启动任务用于文件系统内部的灵活链接和目录重组

符号链接支持相对路径解析

  • 符号链接存储了目标路径,操作系统在访问符号链接时会自动重定向到目标路径。

  • 在powershell 7.1以及之后的版本中,利用new-item 创建symbolicLink时允许使用相对路径而不实用绝对路径,进一步提高灵活性

  • 例如

    PS🌙[BAT:72%][MEM:21.19% (6.72/31.71)GB][23:24:19]
    #⚡️[cxxu@COLORFULCXXU][C:\share\MK\Wedo]
    PS> new-item -ItemType SymbolicLink -Path .\demoSymbol -Target '..\伪新拟态typora css.md'
    Directory: C:\share\MK\Wedo
    Mode LastWriteTime Length Name
    ---- ------------- ------ ----
    la--- 2024/5/27 23:24 0  demoSymbol 󰁕 ..\伪新拟态typora c
    ss.md
    PS🌙[BAT:72%][MEM:22.45% (7.12/31.71)GB][23:27:58]
    #⚡️[cxxu@COLORFULCXXU][C:\share\MKt\Wedo]
    PS> ls |?{$_.LinkType }|select Name,LinkType,LinkTarget
    Name LinkType LinkTarget
    ---- -------- ----------
    demoSymbol SymbolicLink ..\伪新拟态typora css.md

    例子中demosymbol指向父目录(原来名为MK)中的一个markdown文件,当我把demosymbol所在目录(MK)改为MKt,再访问新路径下原来的符号链接仍然能够正确指向原来的文件而不失效

    如果是传统的快捷方式(.lnk)文件,此时就会失效

使用场景👺

快捷方式

  1. 创建常用应用程序或文档的快捷方式:

    1. 文件或目录的快捷方式,可以方便用户快速访问文件或目录,经常创建在桌面,此特性主要面向计算机操作者(用户)

    2. 快速启动应用程序:例如将常用的软件(如浏览器、文本编辑器等)创建快捷方式放在桌面或任务栏,方便随时启动。(如果该软件支持指定启动参数,那么快捷方式允许你携带参数,这非常有用)

  2. 访问网络位置或共享文件夹:对于网络路径或共享文件夹,可以创建快捷方式,以便快速访问。

  3. 系统命令的快捷方式:例如为“关闭计算机”、“重启”等系统命令创建快捷方式,通过简单点击即可执行复杂操作。

符号链接

  • 适用于需要文件系统内部重组,创建灵活链接的场景。比如,在开发环境中,将多个项目中的共享库通过符号链接统一到一个目录。

总结

Windows 快捷方式是一种方便用户访问和管理文件、程序的工具,它通过图形化界面简化了文件和应用程序的启动过程。

配合符号链接、硬链接等文件系统链接可以极大地提高操作效率。

posted @   xuchaoxin1375  阅读(103)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2023-09-22 css_transform_skew()中的角度问题_动画演示角度变化
2023-09-22 PT@古典概型@等概率模型@P1
2023-09-22 PT@Bernoulli概型@古典概型之伯努利概型
2022-09-22 windows10_北京时间设置UTC+08:00)
2021-09-22 python/javaScript_数制进制转换base conversion problem
点击右上角即可分享
微信分享提示