linux学习笔记-day10-链接文件

2018-11-21  本文已影响12人  whatcanhumando

linux中使用llls -l命令中文件属性为l的文件为软链接文件。链接文件分为2种类型,分别为硬链接(hard link)和软链接(symbolic link)。

linux系统读取文件时会先读取inode信息,然后根据inode信息到指定的硬盘位置读取具体的数据。inode相当于C语言中的指针,指向文件数据具体存放的位置。

硬链接是直接新建一个inode信息,这个inode信息直接指向目标文件对应的存放位置。也就是说进行硬链接时对原文件没有任何变化,只是新增了一个指向该位置的inode。但是硬链接有2个限制,第1它不能链接目录。第2它不能跨文件系统链接。

软链接是新建一个文件,当读取这个文件时会将读取的行为转发到目标文件上。如果删除了目标文件那么链接文件还是存在的,但是这个软链接文件将无法打开。如果删除软链接文件那么对于目标文件是没有任何影响的。软链接文件是一个独立的文件,只是操作系统对于读取该文件的方式与普通文件有所区别。并且目标文件可以是软链接文件,操作系统对递归查看最后的目标文件。

使用如下命令创建链接文件

ln test test_link

其中test文件为目标文件,test_link为链接文件。

如果像上面的命令一样不加-s则创建的链接文件为硬链接。创建了硬链接文件后,即使删除了原文件也不会对链接文件有什么影响,因为硬链接文件也保有一份inode用于指向文件所处的实际数据。就相当于同一个文件有2个文件名,只要修改了文件那么另外一个文件也就修改了。表面上看起来的2个文件实际上指向的是同一个硬盘位置。

但是如果加了-s参数创建了软链接,那么删除目标文件后,软链接也就失效了。

上一篇下一篇

猜你喜欢

热点阅读