目录

1、硬链接

2、软链接

3、区别


1、硬链接

包含在目录中的文件名就是一个文件的硬链接(hard link),或者简称链接(Link)。在同一目录或不同的目录中,同一文件可以友几个链接,因此对应几个文件名。

unix命令:

ln P1 P2    //用来创建一个新的硬链接,即为由路径P1标识的文件创建一个路径名为P2的硬链接。

硬链接由两方面的限制:

①不允许用户给目录创建硬链接。因为这可能把目录树变成环形树,从而就不可能通过名字定位一个文件。

②只有在同一个文件系统中的文件之间才能创建链接。这带来比较大的限制,因为现代unix系统可能包含了多种文件系统,这些文件系统位于不同的磁盘或者分区,用户也无法知道它们之间的物理划分。

看到现在你是不是觉得ln就是一个阉割版的cp,不然,我们继续往下看

我们可以发现forward-ln与forward的inode一样,而forward-cp与forward的inode不一样,说明硬链接指向的是同一份物理文件,而cp就是实打实的拷贝了一份新的。

2、软链接

为了客户上述限制,引入了软链接(soft link)[也称符号链接(symbolic link)]。符号链接是短文件,这些文件包含友另一个文件的任意一个路径名。路径名可以指向位于任意一个文件系统的任意文件和目录,甚至于可以指向一个不存在的文件。

unix命令如下:

ln -s P1 P2    //创建一个路径名为P2的新软链接,P2指向路径名P1。

当这个命令执行时,文件系统抽出P2的目录部分,并在那个目录下创建一个名为P2的符号链接类型的新项。这个新文件包含路径名P1。这样,任何对于P2的引用都可以被自动转换成指向P1的引用。

3、区别

硬链接不会创建新的物理文件,但是会使得当前物理文件的引用数加1。当硬链接产生的文件存在时,删除源文件,不会清除实际的物理文件,即对于硬链接“生成的新文件”不会产生任何影响。

软链接就更像一个指针,只是指向实际物理文件位置,当源文件移动或者删除时,软链接就会失效。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐