linux软硬链接命令 linux 软硬链接

五分钟让你明白linux的软链接和硬链接的用法 什么是软链接和硬链接,很多人对这个概念比较模糊,这里帮助你明白他们之间的区别和用法 。
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link) 。
在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名 , 文件内容要通过inode 号来寻找,就像交通指示牌一样,指示着数据找寻的方向 。
软链接可以理解成快捷方式,和原文件的inode号不一样 。它和windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向 。
硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名.
下面这张图表明了他们之间的区别了 。
这二张图详细的给出这二个文件的异同处 。
1,软链接可以理解成快捷方式,也清楚知道原文件在哪儿 。它和windows下的快捷方式的作用是一样的,和windows一样 , 删除源文件,快捷方式也用不了 。
2 , 硬链接可以说做了一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用的问题 , 但也有局限性,不能对目录和跨文件系统使用 。
相信通过上面的说明,你已经明白了二者之间的区别和用途了 。
Linux软链接和硬链接的区别之ln命令详解1. 先来了解一下Linux数据是如何保存和查询的
对操作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata) 。用户数据就是保存和记录文件的内容 。比如一个1M的ppt文件 , 500K的txt文件 。这都属于用户数据 。这个文件总有属性吧,比如大小、修改时间、访问时间、创建时间、存储的位置(文件所在的inode)、文件创建者等等信息 。这些属性信息或者理解为汇总信息,我们称它为元数据 。一句话,用户数据是文件的真实内容,而元数据则是汇总信息 。
在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名 。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块 。
2. 查看文件对应的inode号
134474678 latest.tar.gz
linux查看文件对应的inode号
可以看出latest.tar.gz这个文件 ,  inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识,而不是文件名 。文件名类似于网站域名,仅仅是方便人类记忆 。
也就是说 ,  inode134474678有一个硬链接 , 它就是latest.tar.gz 。
3. 根据inode号查找对应的文件
那么,问题来了 , 系统上有没有第二个文件,它的inode号码也是13447467 。
使用find查找一下:
查找结果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根据inode号查找对应的文件
硬盘上真的有第二个文件它的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个硬链接 。

推荐阅读