Linux软链接和硬链接的区别之ln命令详解
对操作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata)。用户数据就是保存和记录文件的内容。比如一个1M的ppt文件,50
1. 先来了解一下Linux数据是如何保存和查询的 对操作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata)。用户数据就是保存和记录文件的内容。比如一个1M的ppt文件,500K的txt文件。这都属于用户数据。这个文件总有属性吧,比如大小、修改时间、访问时间、创建时间、存储的位置(文件所在的inode)、文件创建者等等信息。这些属性信息或者理解为汇总信息,我们称它为元数据。一句话,用户数据是文件的真实内容,而元数据则是汇总信息。 在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。 2. 查看文件对应的inode号
134474678 latest.tar.gz 可以看出latest.tar.gz这个文件, inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识linux软链接,而不是文件名。文件名类似于网站域名,仅仅是方便人类记忆。 也就是说, inode134474678有一个硬链接,它就是latest.tar.gz。 3. 根据inode号查找对应的文件 那么,问题来了,系统上有没有第二个文件,它的inode号码也是13447467。 使用find查找一下:
查找结果如下: /root/latest.tar.gz /root/latest2.tar.gz 硬盘上真的有第二个文件它的inode号码也是134474678,像这种情况,我们认为inode134474678有两个硬链接。当然,这是本文作者提前准备好的。 为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。 4. 确认硬链接的数量 查看一下文件latest.tar.gz
输出结果如下: -rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz 请留意输出的结果中的数字2,表示该文件存在2个硬链接。 正常情况下,一个inode只有一个链接,如下例
输出结果: -rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt 请留意输出的结果中的数字1,表示该文件只存在1个硬链接,默认情况下,文件都是只有一个硬链接的。 5. 查看软链接 再来看一个文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout -> /proc/self/fd/1 我们发现,/dev/stdout实际上指向另一个文件/proc/self/fd/1,这就是软链接。类似于Windows系统上的快捷方式。 6. 软链接与硬链接的区别6.1 软链接特点6.2 硬链接特点 ln链接符原理如下: 7. 创建文件的链接 Linux ln命令是一个非常重要而且常用命令,它用于为文件或者目录创建链接。 7.1 创建软链接 创建一个文件,用于演示软链接。
创建软链接示例:
检查结果:
输出文件属性 lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt -> soft.txt 可以看出这个文件指向当前目录soft.txt,配置成功。 7.2 创建硬链接 创建一个文件,用于演示硬链接。
创建硬链接,没有使用选项
检查结果:
输出文件属性: -rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt 留意以上输出数字2,表明该文件有2个副本。 8. 总结 ln命令可以创建文件的副本,也可以创建软链接。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |