一、命令概述
ln是Linux下用于创建文档链接的命令,它是英语词组link files的缩写。
1.inode
inode是index node的缩写,通常而言,操作系统对于文件数据的存放分为2个部分,一部分是文件内容,存放在block中,另一部分是文件的元数据信息(文件属性、权限、以及block编号等),存放在inode中。我们读取文件时,都是通过文件名对应的inode ID,找到对应的inode,从中读到block的ID,从而获取到文件内容。inode是文件系统中的一种数据结构,而不同的分区和文件系统中的inode可能拥有不同的结构,所以inode不能跨文件系统。
使用ls -i可以查看文档的inode编号
2.硬链接
指向inode的文件名就是硬链接,一般情况下inode和文件名是一一对应的,也就是文件刚创建的时候,硬链接数为1,但是Linux中允许多个文件名指向同一个inode,inode的硬链接数会随着指向它的文件名的增加而增加,当硬链接数大于1的时候,删除源文件仅仅删除的是硬链接,对其他硬链接没有影响,因为文件本身并没有被删除,只有硬链接数为0时,文件才会真正被删除。硬链接无法分区和跨文件系统,而且无法为目录创建硬链接。
3.软连接
也叫符号链接,类似于windows中的快捷方式,它是Linux中的一种特殊的文件类型,它创建了一个指向文件名的链接文件,读取符号链接文件时,系统会将其自动导向源文件的路径,删除源文件会使软链接失效,再次创建同名源文件,软链接又可以继续生效,所以可以为不存在的文件创建软链接。而且因为软连接是指向文件名的,所以可以为目录创建软连接,同时软连接也可以跨分区和文件系统。
二、命令语法
ln [操作选项] [源文件] [链接名称]
| 操作选项 | 说明 |
| -f | force,强制执行,如果存在同名链接,先删除,再创建 |
| -i | interactive,如果存在同名链接,询问用户是否覆盖 |
| -s | symbolic,创建符号链接 |
| -v | verbose,显示详细信息 |
三、常用操作
1.创建硬链接
ln awk.sh awk
2.创建软链接
ln -s awk.sh sytest
3.强制执行
ln -fs awk.sh sytest
4.覆盖前询问用户
ln -is awk.sh sytest
5.显示详细信息
ln -vfs awk.sh sytest