Linux ln 命令 | 创建文件或目录的符号链接或硬链接
• 最后修改:2025-06-28 • 阅读量:58
Linux ln ( link ) 命令用于创建文件或目录的符号链接和硬链接。
ln 命令的定义解释
在 Linux 和 FreeBSD 系统中有两种类型的链接:
硬链接:您可以将硬链接视为现有文件的附加名称。硬链接是指链接两个或多个具有相同 inode
的文件名。只能为位于同一文件系统或分区上的目录和文件创建硬链接,一个文件可以有一个或多个硬链接。硬链接以文件副本的形式存在,当删除原文件时,文件不会被删除,当删除最后一个硬链接时,才删除文件。
软链接:也称符号链接,是一种文件类型,它为对文件系统中另一个文件或目录的引用。它类似于 Windows 操作系统中的快捷方式,因为它允许您从不同位置访问文件或目录,而无需创建副本。符号链接对于组织文件很有用,也能更容易地访问经常使用的文件或目录。与硬链接不同,符号链接可以指向不同分区或文件系统上的文件或目录。
ln ( link ) 命令用于创建文件或目录的符号链接和硬链接,符号链接也称为软链接,是一种特殊类型的文件,它指向另一个文件或目录。符号链接通常用于为文件系统中的文件或目录创建快捷方式或别名。
在本教程中,我们将介绍如何使用 ln
命令创建符号链接和硬链接。
ln 命令语法
ln 命令的基本语法形式有如下几种:
ln [OPTION]... [-T] TARGET LINK_NAME
ln [OPTION]... TARGET
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... -t DIRECTORY TARGET...
各种语法形式的详细解释:
ln [OPTION]... [-T] TARGET LINK_NAME
语法形式为:为对象文件TARGET
创建一个名称或路径为LINK_NAME
的链接。ln [OPTION]... TARGET
语法形式为:为对象文件TARGET
创建一个在当前目录中的名称相同的链接,TARGET
不能是当前目录中的文件ln [OPTION]... TARGET... DIRECTORY
语法形式为:为多个对象文件TARGET...
在DIRECTORY
目录中创建与对象文件TARGET
名称相同的链接,可以使用.
指定目录为当前目录。ln [OPTION]... -t DIRECTORY TARGET...
语法形式与第三种语法形式相同,只是使用-t
选项提前了DIRECTORY
的位置。
默认情况解释说明:
- 默认情况下
ln
命令创建的链接为硬链接(hard link)。 - 默认情况下是不能已经存在指定名称的目标文件(链接文件)的。
ln 命令使用示例
创建文件的符号链接
使用 -s
选项,为对象文件 file1.txt
创建一个名为 link1.txt
的符号连接:
ln -s file1.txt link1.txt
查看符号链接的具体内容:
ls -l link1.txt
# 输出:
lrwxrwxrwx 1 anxin anxin 9 6月26日 12:46 link1.txt -> file1.txt
|
|
+------------------------------------------ 字符 l 表示文件类型为符号链接
创建目录的符号链接
使用 -d
选项指定创建的是一个目录,同时使用 -s
选项,为对象文件 /var/www/dir1
创建一个名为 ~/dir2
的符号连接:
ln -s -d /var/www/dir1 ~/dir2
由于系统限制,很多系统上无法为目录创建符号链接(看似创建了符号链接,也无法打开)。
覆盖符号链接
默认情况下,当指定的符号链接在目录中已经存在时,无法创建符号链接:
ln -s file2.txt link1.txt
当符号链接 link1.txt
已经存在的情况下会输出以下信息:
ln: 无法创建符号链接 'link1.txt': 文件已存在
使用 -f
选项,强制覆盖已有的符号链接:
ln -sf file2.txt link1.txt
创建文件硬链接
不使用任何选项,为对象文件 file1.txt
创建一个名为 link1.txt
的链接,该链接为硬链接:
ln file1.txt link1.txt
查看符号链接的具体内容:
ls -l link1.txt
# 输出:
-rw-r--r-- 2 anxin anxin 0 6月26日 12:45 link1.txt
从输出可以看出,link1.txt
就是一个文件,只不过该文件是一个副本,不占用空间,使用 inode
方式和源文件链接在一起。
删除符号链接
删除使用 ln 命令创建的符号链接有两种方式:使用 unlink 命令删除,或使用 rm 命令删除。
1、unlink
命令是专门用来删除符号链接的,使用 unlink
删除 link1.txt
符号链接:
unlink link1.txt
2、rm
命令是用来删除文件的,符号链接也是一种文件,使用 rm
删除 link1.txt
符号链接:
rm link1.txt
ln 命令选项解释
如下给出了 Linux ln 命令中所有选项的解释说明:
选项 | 解释说明 |
---|---|
--backup[=CONTROL] | 对每个现有的目标文件(链接文件)进行备份 |
-b | 类似于 --backup ,但不接受参数 |
-d, -F, --directory | 允许超级用户尝试为目录创建硬链接(注意:由于系统限制,即使是超级用户也可能失败) |
-f, --force | 删除现有目标文件(链接文件)后创建链接 |
-i, --interactive | 交互式提示是否删除目标文件(链接文件) |
-L, --logical | 取消对对象(TARGET)为符号链接的引用 |
-n, --no-dereference | 如果 LINK_NAME 是指向目录的符号链接,则将其视为普通文件 |
-P, --physical | 直接为符号链接创建硬链接 |
-r, --relative | 使用 -s ,创建相对于链接位置的链接 |
-s, --symbolic | 创建符号链接,而不是硬链接 |
-S, --suffix=SUFFIX | 覆盖通常的备份后缀 |
-t, --target-directory=DIRECTORY | 指定在目录 DIRECTORY 中创建链接 |
-T, --no-target-directory | 始终将 LINK_NAME 视为普通文件 |
-v, --verbose | 输出每个链接文件的名称 |
--help | 显示帮助信息后退出 |
-v, --version | 显示版本信息后退出 |
结语
在本教程中我们介绍了如何使用 ln ( link ) 命令创建文件或目录的符号链接和硬链接,符号链接也称为软链接,是一种特殊类型的文件,它指向另一个文件或目录。符号链接通常用于为文件系统中的文件或目录创建快捷方式或别名。
该 ln 命令可以在 Linux 系统中使用,也可以在 FreeBSD 系统中使用。