1.软文推荐

2.软文推荐

3.软文推荐

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

什么是链接?

链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。

它是用来干什么的?

你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS X 中的替身),Linux 中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文件链接到一个更易访问的目录中。在这些用途上,我们通常会使用到软链接(也称符号链接)。

内容

软链接和硬链接的区别是? 下面我们进入正题,来探讨一下软硬两种链接到底有什么区别?

首先,从使用的角度讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。

那区别在哪呢?在底层的原理上。

为了解释清楚,我们首先在自己的一个工作目录下创建一个文件,然后对这个文件进行链接的创建:

$ touch myfile && echo "This is a plain text file." > myfile
$ cat myfile

This is a plain text file.

现在我们创建了一个普通地不能再普通的文件了。然后我们对它创建一个硬链接,并查看一下当前目录:

$ ln myfile hard
$ ls -li

25869085 -rw-r--r-- 2 unixzii staff 27 7 8 17:39 hard
25869085 -rw-r--r-- 2 unixzii staff 27 7 8 17:39 myfile

在 ls 结果的最左边一列,是文件的 inode 值,你可以简单把它想成 C 语言中的指针。它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。

你也看到了,这两个文件就如同一个文件一样,inode 值相同,都指向同一个区块。

然后我们修改一下刚才创建的 hard 链接文件:

echo "New line" >> hard
$ cat myfile

This is a plain text file.
New line

可以看到,这两个文件果真就是一个文件。 下面我们看看软链接(也就是符号链接)和它有什么区别。

$ ln -s myfile soft
$ ls -li

25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 hard
25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 myfile
25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 soft -> myfile

诶,你会发现,这个软链接的 inode 竟然不一样啊,并且它的文件属性上也有一个 l 的 flag,这就说明它与之前我们创建的两个文件根本不是一个类型。

下面我们试着删除 myfile 文件,然后分别输出软硬链接的文件内容:

$ rm myfile
$ cat hard

This is a plain text file.
New line
$ cat soft

cat: soft: No such file or directory

之前的硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。 然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。

为验证这一猜想,我们再向这个软链接写点东西:

echo "Something" >> soft
$ ls

hard myfile soft

可以看到,刚才删除的 myfile 文件竟然又出现了!这就说明,当我们写入访问软链接时,系统自动将其路径替换为其所代表的绝对路径,并直接访问那个路径了。

总结

总结 到这里我们其实可以总结一下了:

硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。

本文来源:www.lxlinux.net/5507.html,若引用不当,请联系修改。

相关文章 8

1

阿里云轻量级服务器(阿里云轻量级服务器流量) 3分钟前

目录:1、阿里云轻量服务器不小心还原了系统怎么恢复数据2、阿里云轻量级服务器提速3、阿里云轻量化服务器可以用于搭建《我的世界》...

2

详解JSP 表达式语言 4分钟前

JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达...

3

Linux系统清理磁盘空间7大方法 7分钟前

系统在使用过程中会添加各种应用程序,操作系统会变得混乱,磁盘空间会越来越小,那么如何在Linux系统中清理磁盘空间?本篇文章以Ub...

4

网站icp备案(网站icp备案多少钱) 8分钟前

目录:1、个人网站怎么icp备案2、icp备案是什么意思?3、什么是ICP备案?4、ICP备案是什么有什么用5、什么是icp备案6、icp备案是什么意思个人...

5

4 个最好的 Linux 引导程序 10分钟前

当你打开你的机器,开机自检(POST)成功完成后,BIOS(基本输入输出系统)立即定位所配置的引导介质,并从 MBR(主引导记录)或 GUID(全...

6

在Linux中对文件合并和排序 12分钟前

在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种...

7

SQL Server索引优化需要注意的几个方面 14分钟前

影响到数据库性能的最大因素就是索引。由于该问题的复杂性,我只可能简单的谈谈这个问题,不过关于这方面的问题,目前有好几本不错...

8

易凡云(我想看易凡) 17分钟前

目录:...