linux下的连接文件
来源:互联网 发布:一级域名怎么解析二级 编辑:程序博客网 时间:2024/06/05 16:09
linux下的连接文件共有两种,一种是类似于windows的快捷方式功能的文件,可以让你快速连接到目标文件,被称为软连接;另一种则是通过文件系统的inode连接来产生新文件名,而不是产生新文件,这种被称为硬连接。这两种连接完全不一样。
首先介绍硬连接:
每个文件都会占用一个inode,文件内容由inode的记录来指向。想要读取该文件,必须要经过目录记录的文件名来指向到正确的inode号码才能读取。即文件名只与目录有关,但是文件内容则与inode有关。hard link就是在某个目录下新建一个文件名来连接到某个inode号码上。也就是说它们指向了硬盘上的同一块空间。
个人理解是每个inode就好像是一个指针一样,每个目录的内容应该就是文件名,而文件的内容则是真实存储在文件中的内容。
《鸟哥的linux私房菜》中的图8-7,文件名找到相对应的文件的inode,这个inode指向了文件的实际内容。硬连接就是创建了多个文件名,让它们指向相同的inode,所以通过它们查询到的文件内容也是一样的。这个时候,我们删除掉一个文件名并不会将这个文件删除掉,只有在文件名全部被删掉之后,内核发现没有文件名和这个inode相对应了,才会删除掉这个inode指向的文件内容,这个时候就是找不到文件内容了。类似于c++中的智能指针。硬连接一般不会增加
磁盘的空间与inode的数目。我们需要注意到硬连接是有限制的:
1.不能跨文件系统。
2.不能硬连接到目录上。
除了硬连接外,还有符号连接,也被称为软连接。
符号连接则会真实产生一个文件,这个文件的内容是要连接的文件的名称。例如如果要连接到/etc/passwd,那么这个产生的文件的内容就是/etc/passwd,当然,你是读不到这个文件的内容的,因为它是一个连接文件,所以你一旦读取这个文件,读取到的将会是它所连接的那个文件的内容,当连接一个文件的时候,将会占用磁盘的空间,并且也会占用inode。这个时候,如果把源文件删除掉,那么就会真正的删除掉文件,而新产生的连接文件也打不开了,因为只有一个文件名对应inode。
连接文件的命令是ln,如果不加任何参数产生的就是硬连接,加上-s选项则是软连接。
格式为 ln passwd passwd-hd
源文件 产生的连接文件
0 0
- linux下的连接文件
- linux下软硬连接文件的区别
- Linux下连接库文件的方法
- 关于linux下make文件连接静态库的问题
- windows下连接linux环境共享文件的配置过程
- Linux下如何批量建立文件连接
- Linux下如何批量建立文件连接
- Linux下的ADSL连接
- Linux下的网络连接
- Linux下的TCP连接
- Linux下的文件
- linux 下的文件
- linux 下的文件
- 【ssh linux】win下ssh连接linux,互传文件
- SSH连接下复制远程linux服务器文件到本地的命令(zz)
- SSH连接下复制远程linux服务器文件到本地的命令
- Unix下的硬连接和软连接文件
- Unix下的硬连接和软连接文件
- mysql distinct 去重、group by 用法解析(详细)
- AVL树构建代码及其基本操作
- Base64编码的C语言实现
- vs2015用cmake编译opencv问题总结
- 继承View自定义开关控件
- linux下的连接文件
- CMD/Power Shell之字体替换
- 横竖屏切换时Activity生命周期的变化
- 【java基础】转发&&重定向
- BZOJ 1012 单调队列+二分
- Linux下进程间通信--管道通信
- C语言读取配置文件以及128字节对齐.bin配置文件
- JavaScript语言的数据类型
- 用call和ret实现子程序