1.硬链接相当于两个指针指向同一个空间;软链接相当于指向指针的指针。
2.硬链接的inode号一致。软链接不同
3.硬链接删除所链接的文件,相当于引用计数-1。
软链接删除所链接的文件,源文件就被删除,软链接属性颜色成红色
4.不能用ln对目录做硬链接,所谓目录的硬链接就是目录底下所有目录个数(包括.和..)
5.inode和fd
可以这样理解,inode是唯一的身份标示,这就是虽然我们对某个文件做了硬链接,用ll -i
查看其属性,虽然大小与源文件相同,但是他们的inode却是一致的。而fd是文件的描述符,内核用它来标识一个特定进程正在访问的文件,当运行一个新程序时,shell都会为其生成3个描述符,0 stdin,1 stdout,2 stderr
同一个文件,你打开读写用的是你的fd,我读写用到的是我的fd,但是当两个进程对一个文件进行更改的时候,需要用fctl对文件进行控制(加锁),否则也许得到的并不是我们想要的结果
如图,本地两次打开file,会出现两个不同的进程pid,每个对应的/proc/2365,/proc/2432都会有它的fd