Linux硬链接和软链接
来源:互联网 发布:近在咫尺柳情和方知 编辑:程序博客网 时间:2024/06/06 03:52
unlink()
Linux每个文件有自己的引用计数和链接计数,存放在inode结构体中。
unlink(char *pathname)函数会对pathname路径对应文件的链接计数减1,如果此时链接计数变为0,并且此文件的引用计数也为0,此文件内容就会被删除。
当open一个存在的文件时,文件的引用计数会加1,close一个文件时,引用计数会减1,但都不影响文件的链接计数。只有创建一个文件时,文件的引用计数会初始为1,调用link函数会为一个文件创建一个硬链接,该文件的链接计数相应加1。调用symlink函数创建一个软链接,不影响链接计数。
硬链接和软链接的区别
硬链接是有着相同inode号仅文件名不同的文件,因此硬链接存在以下几点特性:
- 文件有相同的 inode 及 data block;
- 只能对已存在的文件进行创建;
- 不能交叉文件系统进行硬链接的创建;
- 不能对目录进行创建,只可对文件创建;
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的inode号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:
- 软链接有自己的文件属性及权限等;
- 可对不存在的文件或目录创建软链接;
- 软链接可交叉文件系统;
- 软链接可对文件或目录创建;
- 创建软链接时,链接计数 i_nlink 不会增加;
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
至于为什么硬链接不能对目录创建,是为了防止目录出现循换,这个网站的例子举得很好:http://ask.apelearn.com/question/5565。
- linux中的软链接和硬链接
- linux软链接和硬链接
- Linux的软链接和硬链接
- linux的硬链接和软链接
- Linux的硬链接和软链接
- linux ln 软链接和硬链接
- linux软链接和硬链接
- linux的硬链接和软链接
- Linux中的硬链接和软链接
- Linux中的硬链接和软链接
- linux 硬链接和软链接
- linux软链接和硬链接
- Linux 硬链接和软链接
- Linux软链接和硬链接
- linux软链接和硬链接
- linux软链接和硬链接
- Linux软链接和硬链接
- Linux的软链接和硬链接
- MVC模型和MVT模型
- 详解协方差与协方差矩阵
- 【Angular】——tab页
- Java练习题8
- 魔方格答案纠错-概率论
- Linux硬链接和软链接
- 数据结构:用Java对数组进行排序
- 关于unicode与utf-8的认识
- maven核心---pom.xml详解
- numpy.cov() 计算协方差矩阵
- HQL实用技术
- 亲测实验,stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口。
- 绿盟前端面试
- 洛谷P1305新二叉树