如何:Linux / UNIX 使用 ln 命令创建软链接
要在文件之间建立链接,您需要使用 ln 命令。符号链接(也称为软链接或符号链接)由一种特殊类型的文件组成,用作对另一个文件或目录的引用。Unix/Linux 等操作系统经常使用符号链接。本指南介绍如何使用 ln 命令创建符号/软链接。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 命令 |
操作系统兼容性 | *BSD • Linux • macOS • Unix • WSL |
预计阅读时间 | 4 分钟 |
可以对目录以及不同文件系统或不同分区上的文件建立符号链接。
两种类型的链接
有两种类型的链接
- 符号链接(也称为“软链接”或“符号链接”):指的是指示另一个文件的抽象位置的符号路径。
- 硬链接:指物理数据的具体位置。
如何在 Unix 和 Linux 下创建软链接/符号链接?
软链接使用 ln 命令创建。例如,下面将创建一个名为 link1 的软链接,指向名为 file1 的文件,两者都在当前目录中。
$ ln -s file1 link1
要验证新的软链接,请运行:
$ ls -l file1 link1
示例输出:
-rw-r--r-- 1 veryv wheel 0 Mar 7 22:01 file1 lrwxr-xr-x 1 veryv wheel 5 Mar 7 22:01 link1 -> file1
从上面的输出可以清楚地看出,名为“link1”的符号链接包含其链接到的文件“file1”的名称。
如何使用 ln 命令
因此,在 Unix 或 Linux 中,在 shell 提示符下创建符号链接的语法如下:
例如,为 /webroot/home/httpd/test.com/index.php 创建软链接为 /home/vivek/index.php,输入以下命令:
示例输出:
$ ln -s {source-filename} {symbolic-filename}
$ ln -s /webroot/home/httpd/test.com/index.php /home/vivek/index.php
$ ls -l
lrwxrwxrwx 1 vivek vivek 16 2007-09-25 22:53 index.php -> /webroot/home/httpd/test.com/index.php
您现在可以编辑名为 /home/vivek/index.php 的软链接,并且 /webroot/home/httpd/test.com/index.php 将得到更新:
$ vi /home/vivek/index.php
即使您使用 rm 命令删除了软链接 /home/vivek/index.php,您的实际文件 /webroot/home/httpd/test.com/index.php 仍会保留在磁盘上:
为了创建符号链接,请在 Linux 或类 Unix 系统下使用或选项。
$ rm /home/vivek/index.php ## <--- link gone ##
## But original/actual file remains as it is ##
$ ls -l /webroot/home/httpd/test.com/index.php
-s--symbolic
创建目录的符号链接
语法保持不变:
$ ln -s {source-dir-name} {symbolic-dir-name}
例如,从 /home/lighttpd/http/users/vivek/php/app/ 目录创建一个符号链接到您要运行的 /app/ 目录:
$ ln -s /home/lighttpd/http/users/vivek/php/app/ /app/
现在我可以使用 /app/ 编辑文件
$ cd /app/
$ ls -l
$ vi config.php
如何覆盖符号链接/软链接
传递-f给 ln 命令来覆盖链接:
$ ln -f -s /path/to/my-cool-file.txt link.txt
如何删除或移除符号链接/软链接
使用rm 命令删除包含符号链接的文件:
$ rm my-link-name
$ unlink /app/
$ rm /home/vivek/index.php
获取有关 ln 命令的帮助
键入以下 man 命令或 help 命令:
$ man ln
# the following may not work on older Unix versions #
$ ln --help
选项 | 描述 |
---|---|
--backup | 备份每个现有的目标文件 |
-b | 喜欢--backup但不接受论点 |
-d | 允许超级用户尝试硬链接目录(注意:即使对于超级用户来说,也可能会由于系统限制而失败) |
-f | 删除现有的目标文件 |
-i | 提示是否删除目的地 |
-L | 取消引用符号链接的 TARGET |
-n | 如果 LINK_NAME 是目录的符号链接,则将其视为普通文件 |
-P | 将硬链接直接链接到符号链接 |
-r | 创建相对于链接位置的符号链接 |
-s | 建立符号链接而不是硬链接 |
-S | 覆盖通常的备份后缀 |
-t | 指定创建链接的目录 |
-T | 始终将 LINK_NAME 视为普通文件 |
-v | 打印每个链接文件的名称 |
--help | 显示此帮助并退出 |
--version | 输出版本信息并退出 |
结论
您学习了如何使用 ln 命令通过传递选项在 Linux 中创建符号链接-s。有关更多信息,请参阅此处的 ln 命令手册页。您也可以使用 man 命令或 help 命令离线阅读手册页:
$ man ln
$ ln --help