文章目录
- 一、命令介绍
- (一)符号链接的特点
- (二)硬链接的特点
- 二、命令格式
- 三、常用选项
- 四、命令示例
- (一)创建硬链接
- (二)创建软链接
一、命令介绍
Linux 具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份。另外,被链接的文件也可以有相同的文件名,但是存放在不同的目录下,这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改。对于某个文件的各链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。
文件链接有两种形式,即硬链接和符号链接,关于链接的详解,参见《Linux 系统的硬链接和软链接详解》
ln 命令是 Linux 系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,称为硬链接;另一种是symbolic link,称为符号链接,有称为软链接。
通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。
(一)符号链接的特点
- 符号链接以路径的形式存在,类似于 Windows 操作系统中的快捷方式
- 符号链接可以跨文件系统 ,硬链接不可以
- 符号链接可以对一个不存在的文件名进行链接,硬链接不可以
- 符号链接可以对目录进行链接,硬链接不可以
- 符号链接的大小是其链接文件的路径名中的字节数
- 删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据
(二)硬链接的特点
- 硬链接以文件副本的形式存在,但不占用实际空间
- 硬链接不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
二、命令格式
ln [选项] <源文件或目录> <目标文件或目录>
三、常用选项
选项 | 说明 |
---|---|
--backup[=CONTROL] | 为每个已存在的目标文件创建备份文件 |
-b | 类似 --backup ,但不接受任何参数 |
-S 或 --suffix=SUFFIX | 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它 |
-d 或 -F 或 --directory | 创建指向目录的硬链接(只适用于超级用户) |
-f 或 --force | 强行创建链接,并删除任何已存在的目标文件 |
-i 或 --interactive | 覆盖既有文件之前先询问用户。交互模式,若目标文件已经存在,则提示用户确认进行覆盖 |
-L 或 --logical | 取消引用作为符号链接的目标 |
-n 或 --no-dereference | 把指向目录的符号链接视为一个普通文件 |
-P 或 --physical | 使硬链接直接指向符号链接 |
-r 或 --relative | 创建相对于链接位置的符号链接 |
-s 或 --symbolic | 对源文件建立符号链接,而非硬链接 |
-t 或 --target-directory=DIRECTORY | 指定要在其中创建链接的目录 |
-T 或 --no-target-directory | 始终将链接名称视为普通文件 |
-v 或 --verbose | 打印每个被链接的文件的名称。其实就是详细信息模式,输出指令的详细执行过程 |
--help | 显示此帮助信息并退出 |
--version | 显示版本信息并退出 |
四、命令示例
(一)创建硬链接
硬链接的语法:ln filename [linkname ]
在目录 /usr/liu 下创建一个硬链接文件 a2.c,链接到目录 /usr/mengqc/mub1 下的文件 m2.c,如下:
ln /usr/mengqc/mub1/m2.c /usr/liu/a2.c
说明:在执行 ln 命令之前,目录 /usr/liu 中不存在 a2.c 文件。执行 ln
之后,在 /usr/liu 目录中才有 a2.c 这一项,表明 m2.c 和 a2.c 链接起来(注意,二者在物理上是同一文件),利用 ls -l
命令可以看到链接数的变化。
(二)创建软链接
软链接的语法:ln -s filename [linkname]
在目录 /usr/liu 下建立一个符号链接文件 abc,使它指向目录 /usr/mengqc/mub1:
ln -s /usr/mengqc/mub1 /usr/liu/abc
说明:
-s
表示创建软链接。- 执行该命令后,文件
mub1
的路径/usr/mengqc/mub1
将存放在符号链接文件abc
中。