"/>

Linux 硬链接文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 硬链接文件相关的知识,希望对你有一定的参考价值。

硬链接文件

==只允许对文件硬链接 , 并且不能跨分区硬链接 , 因为不同的分区 , 可能存在相同的inode号. 不允许对目录硬链接 . ==

1. 硬链接和inode相关

在使用ls -i 查看文件的inode号

技术分享

2. 创建硬链接

> 对/tmp/1.txt创建硬链接
[[email protected] ~]# ln /tmp/1.txt /tmp/1_hard.txt[[email protected] ~]# ln -s /tmp/1.txt  /tmp/1_soft.txt[[email protected] ~]# ls -lt /tmp/总用量 8lrwxrwxrwx. 1 root   root    10 6月   9 14:59 1_soft.txt -> /tmp/1.txt
-rw-r--r--. 1 root   root     0 6月   9 14:53 4.txt
-rw-r--r--. 1 root   root     0 6月   9 14:53 3.txt
-rw-r--r--. 2 root   root   390 6月   9 14:52 1_hard.txt
-rw-r--r--. 2 root   root   390 6月   9 14:52 1.txt

技术分享

> 查看1.txt 和1_hard.txt的inode号
[[email protected] ~]# ls -it /tmp/16975321 1_soft.txt  33634053 34516975320 4.txt         822288 23416975319 3.txt       33634051 11116914255 1_hard.txt  50768750 22216914255 1.txt       16777285 allinlinux16890432 2.txt         822276 systemd-private-0f4b60569c224727b1ec0153a8598630-vmtoolsd.service-qCx2Tt16777289 user1.txt      14404 allin2  822290 666         17024017 tmp

技术分享

2.1 解读

1.txt 和 1_hard.txt 互相成为对方的硬链接 , 不存在源文件和目标文件之说.

inode号是一个用来标记一个文件(目录), 并且记录该文件(目录)的所有信息的一串字符 , 包括文件中的内容也是保存在inode号里面的 .

1_hard.txt 和 1.txt 两个文件都指向了相同的inode , 说明两个文件的所有信息都是一致的 . 那么两个一模一样的文件 , 是否占用两份存储空间呢? 答案是否定的 , 都说是两个文件指向的是同一个inode , 也就是指向同一个内容 , 并不像copy文件一样 , 占用两份存储空间 .

可以这么理解硬链接 : 一个新的外壳(1_hard.txt) , 和原来的外壳(1.txt) 一样 ,都是指向着同一个inode对应的东西 . 实际上只有一份东西 , 两个外壳 , 所以存储空间只占用一份 .

把其中任意一个文件(外壳) , 删除掉 , 并不影响该inode号存储的内容信息 , 因为还有一个文件(外壳) 指向这个inode , 但是一个inode,至少保留一个外壳(文件指向) , 才能存在 .


本文出自 “Linux之路” 博客,请务必保留此出处http://allin28.blog.51cto.com/12931477/1933862

以上是关于Linux 硬链接文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux中硬链接文件和软链接文件有啥区别?

Linux中硬链接和软链接的区别与联系!

Linux硬链接,软连接和复制的区别

linux中软链接和硬链接的区别与小结

Linux软链接和硬链接

Linux硬链接和软连接的区别与总结