• 欢迎光临~

Linux下查找一个文件的所有软硬链接-硬链接与软链接的区别

开发技术 开发技术 2022-06-02 次浏览

硬链接(Hard Link):

硬连接指通过索引节点来进行链接(即一个指针指向文件索引节点)。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种链接就是硬链接。硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个链接并不影响索引节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的连接才会被释放。

建立硬链接语法:ln  filename  [linkname]

软链接(Symbolic Link):

软链接也叫符号链接,软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件(可以是也难以文件或目录,可以链接不同系统的文件)。在软链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

建立软链接语法: ln  -s  filename  [linkname]

硬链接与软链接之间的区别:

1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;

2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;

3.链接数目是不一样的,软链接的链接数目不会增加;

4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了。

5.总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。 当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷;还有软链接要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

硬链接文件查找

stat test.txt  //获取文件的inode号码
find / -inum 1486772 >/dev/null //根据Inode号码查找,把错误提示丢弃

如链接文件查找

find ./  -type l -exec ls -l {} ;| grep 'my.txt'

 

喜欢 (0)