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 系统中使用。