一、硬链接
1. 硬链接:(hard link)相当于给文件起别名,链接指向同一个inode,修改其中一个文件其他硬链接的文件也被修改。让文件名同时能够修改同一个文件。
ln 原文件 目标文件
注意:inode
要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西。当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区和data block(实际数据放置在数据区域中)这个inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个文件的 inode。 Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber, 其他信息还有创建时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。
2. 硬链接文件可以同一目录,也可不同目录下的文件,但不能对目录创建硬链接,而且不能跨卷,即在同一个文件系统中的文件才能创建链接。
注意:Linux下目录也是文件,只不过目录是一个用来存放文件的特殊的文件
3. 硬链接可以相当于指向同一个inode的指针,删除一个指针原文件不会删除。
目录的硬链接数目就该目录下的目录的数目。其中 . 和 .. 就是两个目录当前目录和上层目录
文件的硬链接数目就是链接该文件的数目
二、软链接
1. 软链接:soft links 软链接又叫符号链接,这个文件包含了另一个文件的路径名。解决了硬链接不能跨文件系统链接的缺点。
ln -s原文件目标文件
- 可以是任意文件或目录,可以跨卷,可以链接不同文件系统的文件。
3.软链接相当于Windows下面的快捷方式,链接可以n级链接,相当于n级指针,不占内存。
缺点删除原文件,所有链接文件失效。
三、硬软链接的区别:
区别:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,BBB大小是95B,而BBBsoft是3B。因为BBB共有3个字符
5.软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接