linux的ln指令详解~多图,易理解(硬链接和软链接)
最近看到ln指令1.命令格式:ln [参数][源文件或目录][目标文件或目录]2.命令功能:Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。
最近看到linux的ln指令,之前接触过很多次,理解完了总是忘记,查的资料竟然各种文字,太不容易理解,所以就想着把它们整理出来,以供理解~
1.ln命令格式:
ln [参数][源文件或目录][目标文件或目录]
ln [源文件或目录][目标文件或目录] ~~~~~~~硬链接
ln -s [源文件或目录][目标文件或目录] ~~~~~软链接
2.命令功能:
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。
在这里我们解释一下目录项(dentry)的概念。每一个文件一般表示就是使用目录项,每个目录项包含着该文件的名字,该文件指向的inode节点标号,linux把目录和文件都用目录项表示。
硬链接:硬链接可以认为是一个指针,指向原文件inode的指针,系统不为它重新分配inode和创建文件,即硬链接和原文件是同一个文件。其新建一个目录项,指向被链接的inode节点,一个inode节点可以指向多个目录项。
软链接:它是指向另一个文件的特殊文件,这种文件的数据部分仅仅包含了它所要连接文件的路径名。软链接同样也是新建一个目录项,指向一个新的inode节点,但这个inode节点的文件数据指针指向所引用文件的真实地址。
硬链接和软链接的具体含义如下图所示:
我们使用如下指令,将ppp.h文件硬链接到原文件proc.h
ln proc.h ppp.h
原proc.h文件的inode节点是516134,指向数据区的第一个file文件。使用了ln指令之后,在directory中新建一个目录项,文件名为ppp.h,inode节点仍为516134,直接指向同一个proc.h。
我们在linux系统上进行实验,验证我们的解释是正确的,两个文件的inode节点相同,指向同一file:
我们使用如下指令,将ppp.h文件软链接到原文件proc.h
ln -s proc.h ppp.h
不管是软链接还是硬链接,对于链接文件的修改都会改动到原文件。
更多推荐
所有评论(0)