ln

Linux ln命令创建符号链接

你可能知道windows的系统有个叫快捷方式的文件,当你为一个文件或者目录创建快捷方式时

3 min read
By myfreax
Linux ln命令创建符号链接
Linux ln命令创建符号链接

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

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

符号链接/软链接是一类特殊的文件,其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。

至今POSIX标准的操作系统、大多数类Unix/Linux系统、Windows都支持符号链接。 Windows 2000与Windows XP在某种程度上也支持符号链接。

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的软链接。要验证是否已创建符号链接,请运行ls命令

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

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

创建目录的符号链接与创建文件符号链接的命令是一样的。只需将目录名称指定为第一个参数,将符号链接指定为第二个参数。

例如,要创建从/mnt/my_drive/movies目录到~/my_movies目录的符号链接。请运行命令ln -s /mnt/my_drive/movies ~/my_movies

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

覆盖符号链接

如果您尝试创建已存在的符号链接,ln命令将打印错误消息。ln: failed to create symbolic link 'my_link.txt': File exists。

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

ln -sf my_file.txt my_link.txt

删除符号链接

您可以使用unlinkrm命令删除现有的符号链接。unlink命令的语法很简单。使用rm命令删除符号链接与删除文件时候相同。

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

unlink symlink_to_remove
rm symlink_to_remove

结论

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

Related Articles