如何使用ln命令在Linux/UNIX中创建软链接
时间:2020-01-09 14:16:11 来源:igfitidea点击:
什么是软链接(符号链接)?
如何在UNIX或Linux操作系统下创建软链接(符号链接)?
要在文件之间建立链接,您需要使用ln命令。
符号链接(也称为软链接或符号链接)由一种特殊类型的文件组成,该文件用作对另一个文件或目录的引用。
像操作系统一样的Unix/Linux经常使用符号链接。
本指南说明了如何使用ln命令创建符号/软链接。
可以建立目录以及不同文件系统或不同分区上文件的符号链接。
两种类型的链接
链接有两种类型
- 符号链接(也称为软链接或符号链接):是指表示另一个文件的抽象位置的符号路径。
- 硬链接:指物理数据的特定位置。
如何在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命令
因此,在shell提示符下,在Unix或Linux中创建符号链接的语法如下:
$ ln -s {source-filename} {symbolic-filename}
例如,将/webroot/home/httpd/test.com/index.php创建为/home/Hyman/index.php的软链接,输入以下命令:
$ ln -s /webroot/home/httpd/test.com/index.php /home/Hyman/index.php $ ls -l
输出示例:
lrwxrwxrwx 1 Hyman Hyman 16 2007-09-25 22:53 index.php -> /webroot/home/httpd/test.com/index.php
您现在可以编辑名为/home/Hyman/index.php的软链接,并且/webroot/home/httpd/test.com/index.php将得到更新:
$ vi /home/Hyman/index.php
即使使用rm命令删除了软链接/home/Hyman/index.php,您的实际文件/webroot/home/httpd/test.com/index.php仍保留在磁盘上:
$ rm /home/Hyman/index.php ## <--- link gone ## ## But original/actual file remains as it is ## $ ls -l /webroot/home/httpd/test.com/index.php
创建符号链接到目录
语法保持不变:
$ ln -s {source-dir-name} {symbolic-dir-name}
例如,创建从/home/lighttpd/http/users/Hyman/php/app /目录到要运行的/app /目录的符号链接:
$ ln -s /home/lighttpd/http/users/Hyman/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/Hyman/index.php
获得有关ln命令的帮助
执行以下ln命令:
$ man ln $ ln --help
ln命令选项 | 描述 |
---|---|
--backup | 对每个现有目标文件进行备份 |
-b | 类似于--backup ,但不接受参数 |
-d | 允许超级用户尝试硬链接目录(注意:即使对于超级用户,由于系统限制,它可能也会失败) |
-f | 删除现有目标文件 |
-i | 提示是否删除目的地 |
-L | 作为符号链接的引用目标 |
-n | 将LINK_NAME视为普通文件,如果它是指向目录的符号链接 |
-P | 将硬链接直接链接到符号链接 |
-r | 创建相对于链接位置的符号链接 |
-s | 制作符号链接而不是硬链接 |
-S | 覆盖通常的备份后缀 |
-t | 指定要在其中创建链接的目录 |
-T | 将LINK_NAME始终视为普通文件 |
-v | 每个链接文件的打印名称 |
--help | 显示此帮助并退出 |
--version | 输出版本信息并退出 |