连接文件

连接文件的方式有两种

hard link(硬连接,实际连接)

由于文件名只与目录有关,文件内容是和inode关联的。hard link就是在某个目录下创建一个文件连接到某个inode的关联记录。

例如在/root下创建一个hard link 关联/etc/crontab,发现它们是相同的inode号码

wKioL1NcpOjS8FP6AABbZupNueY472.jpg

权限属性是完全一样的,权限后面字段的”2”表示有2个文件名关联了这个inode

如果将任何一个文件名删除掉了,inodeblock还是存在,而且对任何一个文件进行编辑,会把改动后数据写入到blockinode中。

wKiom1NcpRnSPvazAABwCzXL7jA189.jpg

一般来说,使用hardlink 设置连接文件时,磁盘的空间与inode的数目都不会改变,只是在某个目录下的block下写入一个关联数据,不会增加inode也不会耗用block数量


hardlink 限制

不能跨文件系统

不能连接到目录



symbolic link(符号连接)

符号连接就是创建一个独立的文件,这个文件会让数据的读取指向它连接的那个文件的文件名。

例:创建一个符号连接,发现inode不同,而且还有->这个箭头表示符号连接

wKioL1NcpQHBrjajAABoP_rDDiw569.jpg


由于是利用文件来指向操作,一旦源文件被删除后,符号连接的文件会无法打开,跟windows中快捷方式的用法有类似。当对符号连接进行修改的时候,源文件也会改动。


连接命令ln

ln [-sf] 源文件目标文件

-s 如果加上-s就是符号连接,不加-s就是硬连接

-f 如果目标文件存在,就主动将目标文件删除后重新创建


你可能感兴趣的:(linux,连接文件)