Linux中的软硬链接
说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block。
首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位:
Linux中的文件的文件名、文件属性和文件的数据是分开存储的。在文件系统初始化的时候,硬盘就被分成两个区域iNode区(iNode table)和数据区(block)。文件名存放在目录项(dentry)中,文件的属性存放在iNode中,而文件的内容,即文件的实际数据存放在block中。目录文件是特殊的文件,这是因为目录文件中的数据是一个关联列表,保存文件名(包括目录名)和iNode的映射。这也导致了如果一个用户对一个目录只有r权限,那么他只能读取目录下的文件名和iNode的id,而无法读取这些iNode中存放的文件的属性信息,读取这些信息需要x权限。
通常一个iNode的大小为128B,iNode中的内容如下:
1.文件的字节数;
2.文件拥有者的User id;
3.文件的Group id;
4.文件的读、写、执行权限(r,w,x);
5.文件的时间戳,
ctime
指iNode上一次变动的时间,mtime指文件内容上一次变动
的时间,atime指文件上一次打开的时间;
6.链接数,即有多少文件名指向这个iNode;
7.文件对应的block的位置
可以用stat命令,查看某个文件或目录的iNode信息:
(1)软链接可以跨文件系统,硬链接不可以。
(2)硬链接不管有多少个,都指向的是同一个iNode,会把iNode链接数增加
只要iNode的链接数不是 0,文件就一直存在,不管你删除的是源文件还是链接的文件。只要有一个存在,文件就存在(其实也不分什么 源文件链接文件的,因为他们指向都是同一个 iNode)当你修改源文件或者链接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使
用iNode号作为文件指针,而是使用文件路径名作为指针(软链接跟源文件的iNode不一样)。所以
删除链接文件对源文件无影响,但是删除源文件,链接文件就会找不到要指向的文件 。软链接有
自己的iNode,并在磁盘上有一小片空间存放路径名.
(3)软链接可以对一个不存在的文件名进行链接。
(4)软链接可以对目录进行链接,而硬链接不可以。
Linux中的软硬链接的更多相关文章
- linux基础文件管理软硬链接
一.文件系统的基本结构 1.文件和目录被组成一个单根倒置树目录结构 2.文件系统从根目录下开始,用“/”表示 3.根文件系统(rootfs):root filesystem文件名区分大小写 4.以 . ...
- linux中的硬链接和软链接是什么
Linux 文件系统最重要的特点之一是它的文件链接.链接是对文件的引用,这样您可以让文件在文件系统中多处被看到.不过,在 Linux 中,链接可以如同原始文件一样来对待.链接可以与普通的文件一样被执行 ...
- Linux中的硬链接和软连接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...
- 『学了就忘』Linux基础命令 — 22、Linux中的硬链接和软链接
目录 1.文件和目录的基本存储 2.In命令介绍 (1)我们来看看ln命令的基本信息 (2)ln命令的基本格式 3.创建硬链接 (1)如何创建硬链接 (2)硬链接特征 (3)硬连接原理 4.创建软链接 ...
- Linux中的硬链接和软链接
软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方 ...
- 关于Linux中文件,链接的一些思考
在Unix系统中,操作系统为磁盘上的文本与图像,鼠标键盘操作,网络交互等IO操作设计了一组通用API. 使他们被处理的时候可统一用字节流的方式.所以说,除了进程之外,其他的一切均可看做文件. Linu ...
- Linux中的共享链接库shared libraries
可执行文件的静态链接和动态链接静态链接会将需要的库函数在编译时一并包含, 所以体积会比较大. 使用ldd命令查看可执行文件链接的库 $ ldd /sbin/ldconfig not a dynamic ...
- 6.Linux文件属性及软硬链接
1.文件属性 使用ll -h 查看的详细信息,每一列都是干什么的 第一列第一个字符 表示文件类型---> rw-r--r-- 文件权限 1 这个文件被链接次数 root 文件的拥有者(用户) r ...
- Linux中的硬链接和软链接的概念、区别及用法
概念: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指 ...
随机推荐
- 【JAVA基础】 MAP 遍历
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- spin_lock 和 spin_lock_irqsave
一 .spin_lock_irqsave . spin_unlock_irqrestore 如果自旋锁在中断处理函数中被用到,那么在获取该锁之前需要关闭本地中断,spin_lock_irqsave ...
- TCP/IP基础知识
TCP/IP基础知识 网络 TCP/IP 引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP ...
- hbases索引技术:Lily HBase Indexer介绍
Lily HBase Indexer 为hbase提供快速查询,他允许不写代码,快速容易的把hbase行索引到solr.Lily HBase Indexer drives HBase indexing ...
- sencha做个简单的登录界面
很多人都在群里问要一个好看的登录界面,我表示很无奈,哪有好看的,每个人的要求不一样,要好看的只有自己做. 下面是我自己整理的一个通用版的登录界面,稍做修改,很容易能变成你想要的界面, 不说废话,直接上 ...
- Jquery的优势
(1)轻量级.jQuery非常轻巧,采用Dean Edwards的Packer(http://dean.edwards.name/packer/)压缩后,只有不到30KB的大小,如果服务器端启用gzi ...
- HTML 几种特别分割线特效
一.基本线条 二.特效(效果并不是孤立的,可相互组合)1.两头渐变透明:<HR style="FILTER: alpha(opacity=100,finishopacity=0,sty ...
- 关于ueditor1_4_3 上传出现无法加载配置的问题
我的解决方案是: 1. 检查 ueditor.config.js 中的 serverUrl: URL + "/net/controller.ashx" 的配置,记得一定用绝对路径 ...
- Python一行代码
1:Python一行代码画出爱心 print]+(y*-)**-(x**(y*<= ,)]),-,-)]) 2:终端路径切换到某文件夹下,键入: python -m SimpleHTTPServ ...
- [转]linux援救模式:linux rescue使用详细图解
网上很多网友问怎么进rescue 模式,不知道怎么用rescue来挽救系统. 现在我来图解进入rescue (示例系统为RHEL 3) 1.用安装光盘或者硬盘安装的方式进入安装界面,在shell 中 ...