Linux 硬链接和软链接
硬链接:
ln file link
硬链接相当于给一个文件增加了一个文件名;
一个硬链接不能关联它所在文件系统之外的文件。这是说一个硬链接不能关联与链接本身不在同一个磁盘分区上的文件; 一个硬链接不能关联一个目录。
文件增加一个硬链接,则文件索引节点中的链接数会增加1;删除一个硬链接,则文件索引节点中的链接数会减1,文件内容不受影响;当删除最后一个硬链接,即链接数为零,文件内容也被删除。
软链接(符号链接):
ln -s item link-sym
建立符号链接,既可以使用绝对路径,也可以使用相对路径(注意相对路径是item相对于link-sym而言;有文章说不能使用相对路径,是因为与link-sym位置相对性错误,导致符号链接指向空,所以打开时出现错误),其实使用相对路径名时,对一个包含符号链接的目录重命名或移动,也不会破坏链接。
对于符号链接,执行的大多数文件操作是针对链接的对象,而不是链接本身。而 rm 命令是个特例。当你删除链接的时候,删除链接本身,而不是链接的对象。
相关参考:
大部分的Linux文件系统规定,一个文件由目录项、inode和数据块组成:
目录项:包括文件名和inode节点号。
Inode:又称文件索引节点,包含文件的基础信息(大小、权限、时间戳、链接数)以及数据块的指针。
数据块:包含文件的具体内容。