Linux中的软链接和硬链接区别

整理了一些资料,来说说软链接和硬链接的区别:

软链接相当于windows中的快捷方式,硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,而另外一处数据如果被删除了,不会影响到另一处的数据。

硬链接

ln -d existfile newfile

//不加参数-d默认的就是创建硬链接文件

硬链接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修
改,对硬链接文件进行读写操作时候,效果和软链接相同。但如果我们删除硬链接文件的源文件,
硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当
成一个普通文件。
硬链接文件有两个限制:
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接(即不能跨分区或磁盘做硬链接)。

硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。

软链接

ln -s source_path target_path

软链接指向的是路径(path),软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是

任意文件或目录,还可以链接不同文件系统的文件,和win下的快捷方式差不多。 软链接文件甚至可以链接不存在的文件,甚至链接文件可以循环链接自己,类似于编程语言中的递归调用。

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现 在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

转载请注明出处:http://www.xiaomastack.com/2014/08/11/linuxlndeff/ 谢谢!

发表评论:

你的电子邮件地址将不会被公开.

56 + = 59