如何使用ln命令创建符号链接

你可能知道windows的系统有个叫快捷方式的文件,当你为一个文件或者目录创建快捷方式时,无论你将快捷方式放在哪里,都会打开原来的那个文件或者目录

4 min read
By myfreax
如何使用ln命令创建符号链接

你可能知道windows的系统有个叫快捷方式的文件,当你为一个文件或者目录创建快捷方式时,无论你将快捷方式放在哪里,都会打开原来的那个文件或者目录。

但在Linux下没有快捷方式的概念,我们称为符号链接,是指向另一个文件或目录的特殊类型的文件,也经常被称软链接。

符号链接/软链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。至今POSIX标准的操作系统、大多数类Unix/系统、Windows都支持符号链接。 Windows 2000与Windows XP在某种程度上也支持符号链接。

在本教程中我们将说明什么是符号链接/软链接。链接类型包括硬链接,软链接。ln命令的语法与选项,创建符号链接,创建文件/目录符号链接,强制覆盖现有的覆盖符号链接,删除符号链接。

链接类型

Linux/UNIX系统中有两种类型的符号链接。

硬链接

可以将硬链接视为现有文件的附加名称。硬链接将两个或多个文件名与相同的inode相关联。您可以为一个文件创建一个或多个硬链接。无法为目录和不同文件系统或分区上的文件创建硬链接。

软链接

软链接类似于Windows中的快捷方式。它是指向文件或目录的间接指针。与硬链接不同,符号链接可以指向不同文件系统或分区上的文件或目录。

ln命令

ln命令用于在文件与目录之间创建链接。默认情况下,ln命令会创建硬链接。要创建软链接,请使用-s--symbolic)选项。ln命令的语法如下:

ln [OPTIONS] FILE LINK

创建符号链接

在Linux中创建符号链接,请打开终端并键入:

ln -s source_file symbolic_link

symbolic_link参数是可选的。如果未指定符号链接,则ln命令将在当前目录中创建新的链接。

创建文件符号链接

在下面的示例中,我们将为my_file.txt文件创建一个名为my_link.txt的符号链接:

ln -s my_file.txt my_link.txt

要验证是否已创建符号链接,请使用以下ls命令

ls -l my_link.txt

输出看起来像这样:

lrwxrwxrwx 1 myfreax users  4 Nov  2 23:03  my_link.txt -> my_file.txt

第一个l字符是文件类型的标识,l表示符号链接。->符号显示该文件的符号链接指向。

创建目录的符号链接

创建目录的符号链接与创建文件符号链接的命令是一样的。只需将目录名称指定为第一个参数,将符号链接指定为第二个参数。例如,要创建从/mnt/my_drive/movies目录到~/my_movies目录的符号链接:

ln -s /mnt/my_drive/movies ~/my_movies

覆盖符号链接

如果您尝试创建已存在的符号链接,则ln命令将打印错误消息。

ln -s my_file.txt my_link.txt
ln: failed to create symbolic link 'my_link.txt': File exists

要覆盖符号链接的目标路径,使用-f--force)选项。

ln -sf my_file.txt my_link.txt

删除符号链接

您可以使用unlinkrm命令删除现有的符号链接。unlink命令的语法很简单:

unlink symlink_to_remove

使用rm命令删除符号链接与删除文件时候相同:

rm symlink_to_remove

如果删除源文件或将其移动到其他位置,则符号文件将保持悬空状态。你应该删除它,因为它将不再起作用。

结论

至此你应该很好地理解如何使用Linux ln命令以及如何创建符号链接。