# Symlink 符号链接<no value>

参考内容：
Debian Wiki https://wiki.debian.org/SymLink 

### symlink
symlink(符号链接) 或软链接是其目的是指向另一个文件或目录（称为“目标”）的文件。即程序或文件的 “别名” 或 “快捷方式”。

它是存在于文件系统中的特殊文件 filesystem ，指向另一个文件或目录。如果您从应用程序访问符号链接，则它对应用程序来说是透明的，并且您将真正访问符号链接指向的文件或目录。

它是一种特殊类型的文件，包含另一个文件的路径。文件的 inode 中的 file type 条目 inode 指示它是一个符号链接。当您尝试使用文本编辑器或其他程序访问符号链接时，内核会将程序重定向到由符号链接的路径名指示的文件。与 硬链接 不同，符号链接可以跨不同的文件系统建立。使用  选项的 ln  带有 -s  命令创建符号链接。

symlinks  实用程序对符号链接执行维护。 符号链接  检查符号链接问题，包括指向不存在的文件的悬空符号链接。 符号链接 还可以自动将绝对符号链接转换为相对符号链接。 请安装 symlinks 如果您需要一个程序来维护系统上的符号链接，

虽然符号链接显示文件权限和用户/组所有权，但访问权限仅由其目标权限和用户/组所有权决定！
##### 创建 symlink
```
ln -s <destination file or directory> <name of the symlink>
```
`<destination file or directory>` 目标文件的路径    
`<name of the symlink>` 链接存放路径

例:假设我想在`/usr/bin/`目录创建一个名为`hugo` 的链接，链接的目标是 `/usr/local/bin/hugo` 文件，命令如下:

```
ln -s /usr/local/bin/hugo /usr/bin/hugo
```

##### 删除 symlink
```
rm <name of the symlink>
```

---

### hardlink
hardlink（硬链接） 是将名称与文件关联的目录条目。因此，每个文件必须至少有一个硬链接。为文件创建额外的硬链接可以使该文件的内容通过额外的路径（即，通过不同的名称或不同的目录）进行访问。

只有当指向它的最后一个硬链接/文件名被删除时，才会从磁盘中删除实际的文件/数据。名称的数量由 https://manpages.debian.org/bookworm/coreutils/ls.1.en.html LS(1) 给出。没有 “original” 文件名这样的东西：所有文件名都具有相同的状态。通常（但并非必要）文件的所有名称都可以在 filesystem 也包含其数据的文件系统中找到。大多数文件系统不支持指向目录的硬链接。
##### 创建 hardlink
```
ln <destination file or directory> <name of the hard link>
```

##### 删除 hardlink
```
rm <name of the hard link>
```

---

### External links

https://manpages.debian.org/bookworm/coreutils/ln.1.en.html Ln(1)
