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 硬链接文件的主要内容,如果未能解决你的问题,请参考以下文章