windows@文件系统链接@快捷方式@快捷键方式和符号链接及其对比
文章目录
- abstract
- 快捷方式和符号链接的比较
- 创建方式
- 快捷方式的作用
- 快捷方式的构成
- 如何创建快捷方式
- 快捷方式的管理
- 快捷方式的高级用法
- 快捷方式的命令行创建
- 对比👺
- 快捷方式与符号链接的区别
- 符号链接支持相对路径解析
- 具体使用场景👺
- 总结
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):对快捷方式的简要说明或备注。
如何创建快捷方式
用户可以通过几种方式在 Windows 中创建快捷方式:
- 右键菜单创建:右键点击文件、文件夹或程序,选择“创建快捷方式”,生成
.lnk
文件。 - 拖拽法:按住
Alt
键并将文件或文件夹拖到桌面或其他文件夹中,系统会自动生成一个快捷方式。 - 手动创建:右键点击桌面或文件夹中的空白处,选择“新建” -> “快捷方式”,并按照向导输入目标路径和快捷方式名称。
快捷方式的管理
快捷方式的管理相对简单:
- 重命名:快捷方式的文件名与其目标对象的文件名无关,用户可以自由命名。
- 删除:删除快捷方式文件不会影响目标文件,快捷方式本身是一个独立的引用文件。
- 更改目标:右键点击快捷方式,选择“属性”,在目标字段中修改目标位置,从而更新快捷方式指向的文件或程序。
快捷方式的高级用法
快捷方式不仅仅是指向文件的简单工具,还可以用在一些更复杂的场景中:
- 使用参数启动程序:在快捷方式目标的路径后,可以添加命令行参数,控制程序启动时的行为。例如:
"C:\Program Files\example.exe" /fullscreen
。 - 启动不同用户的程序实例:在快捷方式中,可以使用
runas
命令以不同用户身份运行某个程序。 - 创建网络快捷方式:快捷方式不仅可以指向本地文件,还可以指向远程网络位置,如 Web URL 或共享文件夹。
快捷方式的命令行创建
除了在图形界面手动创建外,还可以通过命令行工具或脚本自动化创建快捷方式,常用工具有:
- PowerShell:通过
New-Object -ComObject WScript.Shell
创建快捷方式,详情另见它文
对比👺
快捷方式与符号链接的区别
虽然快捷方式和符号链接都有类似“指向”的概念,但它们工作方式有显著不同:
- 快捷方式是一种文件级别的链接,它是一个包含目标路径的特殊文件,并不直接在文件系统层面映射目标文件。快捷方式更多的是为用户提供方便的入口,而目标文件本身不会被快捷方式的状态影响。
- 符号链接是一种文件系统级别的链接,它在文件系统中创建一个指针,指向实际文件或目录。操作系统会将符号链接当作实际文件来处理,甚至命令行或程序也可以通过符号链接访问目标文件。
功能 | 快捷方式(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)文件,此时就会失效
具体使用场景👺
- 传统快捷方式:适用于需要在桌面、开始菜单或其他方便位置创建快捷访问路径的场景。比如,桌面上创建常用应用程序或文档的快捷方式。
- 符号链接:适用于需要文件系统内部重组,创建灵活链接的场景。比如,在开发环境中,将多个项目中的共享库通过符号链接统一到一个目录。
总结
Windows 快捷方式是一种方便用户访问和管理文件、程序的工具,它通过图形化界面简化了文件和应用程序的启动过程。
虽然它与符号链接、硬链接等文件系统链接不同,但它在日常使用中极大地提高了操作效率。