在linux下面的连接文件有两种,一种是类似windows的快捷方式功能的文件,可以让你快速链接到目标文件(或目录),称为软连接;另一种则是通过文件系统的inode连接来产生新的文件名,而不是产生新的文件,这种称为硬连接(hard link)。
区别:
1.硬连接只是在某个目录下新建一条文件名连接到某inode号码的关联记录而已,不会消耗额外的inode和data block,当连接的目标文件被删除后,文件的inode和data block还是存在的,硬连接还是可以访问到。但局限性在于硬连接无法跨文件系统和无法连接目录。
2.软连接(symbolic link)就是在创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。会消耗inode和data block。当源文件被删除后,连接文件会无法打开。
linux创建连接文件的命令:
ln [-sf] 源文件 目标文件
参数:
-s:如果不加任何参数就进行连接,那么就是hard link,加-s就是symbolic link
-f:如果目标文件存在,就主动将目标文件删除后再创建
PS:文件的名字不是记录在文件的inode中的,而是记录在目录的data block当中,所以对文件执行重命名、更新、删除等都需要目录的w权限