硬连接与软连接,inode与links
硬连接和软连接,第一感觉就像是window的快捷方式,实则不然 要说硬连接和软连接,那就必须了解inode和block以及分区了 EXT文件系统在创建分区的时候,就划分了两块区域,inode table和date blockINODE
inode – index node ,索引节点 每一个inode固定分配了128bytes的空间 一个文件和目录对应着一个inode 多个文件可以对应一个inode当访问一个文件的时候,发生了什么
首先会找到这个文件名对应的inode number,然后拿着inode number 找到inode,获取inode中的信息,inode中记录了文件的数据在哪些个block中储存,然后会根据着inode中的block顺序,依次取出数据INODE的内容
用sata命令取出文件名对应的inode信息
- size :该文件的大小
- block : block的信息
- links :有多少个连接数,有多少个文件名连接上这个inode
- inode: inode number
- Access:mode 权限
- uid、gid
- atime、mtime、ctime
删除
删除一个文件的时候发生了什么? 当这个文件的links>1的时候,先links-1,不删除block中的数据,不删除inode 如果links=1,那就删除inode,而且删除block,这样的话,那文件真的是删除了 删除目录的软连接,对实际目录没有影响,删除实际目录那就是真的删除了硬连接
ln source destination 用上面的指令可以新建一个硬连接建一个硬连接发生了什么?
先新建一个文件名,文件名的inode number 指向源文件的inode number,然后把links+1,这就完成啦 所以硬连接文件的所有信息(权限、owner、size、time….)都和源文件一模一样访问硬连接的过程
找出硬连接的inode number,然后读取这个inode的信息和bolck位置,接着读取block中的数据注意
- 源文件和硬连接文件共用一个inode
- 建立硬连接,inode中的links会加一
- 所以删除硬连接对源文件不会有影响
软连接
ln -s source destination 用上面的指令可以建立一个软连接建一个软连接发生了什么?
先建立一个文件,这个过程就会新建一个inode,软连接的inode和源文件的inode不一样 然后这个软连接文件的文件名会指向源文件 可以看到,软连接的inode和源文件的inode不一样 软连接文件的大小为4bytes,这刚好就是源文件文件名(demo)的大小,一个字幕一个byte访问一个软连接
访问一个软连接文件的时候,会根据文件名找到源文件,然后就跟直接访问源文件一样了注意
- 软连接的inode和源文件的inode不一样
- 软连接不会增加links,所以删除源文件(links=2)的时候,软连接就访问不了了
- 软连接文件的size=源文件的文件名的size
硬连接与软连接,inode与links的更多相关文章
- 初窥Linux 之 区分硬连接和软连接
一.Linux下的两种连接文件及创建方式 在Linux下面的连接文件有两种——软连接和硬连接,虽然都是连接文件,但两者却有很大的区别.一种是类似于Windows的快捷方式功能的文件(或目录),这种连接 ...
- Linux文件系统的硬连接和软连接
title: Linux文件系统的硬连接和软连接 date: 2018-02-06T20:26:25+08:00 tags: ["文件系统"] categories: [" ...
- linux中的硬连接和软连接
linux中的硬连接和软连接 linux中的硬连接和软连接 背景 连接 硬连接 软连接 example reference 背景 linux中的文件主要分3块, - 真正的数据 - 索引节点号(ino ...
- 【Linux】Shell学习笔记之四——文件和目录管理(硬连接和软连接)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- linux ------ 硬连接和软连接(软连接也叫符号连接)
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号 (Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接 ...
- linux 硬连接与软连接
1.linux中文件占用一个inode,inode指向文件内容.2.文件名可以认为是一个指针,指向inode.硬连接相当于指针的整体拷贝,并不是对文件内容的拷贝.两个文件名(两个指针)都能修改文件,删 ...
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- 智能车学习(二十)——浅谈C车硬连接与软连接
一.为何要追求软连接? 车子进行软连接之后,可以达到一种效果,就是在高速过程中,车子如果快要发生侧翻的时候,只会跳一个后轮,且只是轻微,而前轮如果进行的内倾,就可以让前轮最大面积接触,增大 ...
- Linux 硬连接和软连接的原理 (in使用)
引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...
随机推荐
- python socket 学习
Python在网络通讯方面功能强大,今天学习一下Socket通讯的基本方式,分别是UDP通讯和TCP通讯. UDP通讯 upd 服务端 #!/usr/bin/env python # -*- codi ...
- SQL Server的日期和时间类型
Sql Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1,秒的精度是指使用多少位小数表示秒 DateTime数据类型秒的精度是3,D ...
- SQL Server 2012 T-SQL 新特性
序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCRE ...
- 【转】“正由另一进程使用,因此该进程无法访问该文件”的问题&解决方法
正在写一个手指画图的程序C# + WPF其中有一部分是加载外部某PNG文件,放入BitmapImage,再作为Image的Source显示在Canvas上画了几笔之后,再存回这个PNG文件 ===== ...
- java中异常注意问题(发生在多态是的异常问题)
/* 异常的注意事项: 1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类. 2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集. 简单说:子类 ...
- Android横竖屏切换及其对应布局加载问题
第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局. 可以通过以下两种方法来切换布局: 1)在res目录下建立layout-land ...
- web前端学习笔记(CSS盒子的定位)
相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它. 使用relat ...
- struct
struct QSortStack { public int high; public int low; } QSortStack* stack = ]; unsafe static void qso ...
- 【转】 NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...
- js 比较好的博客
1.0 作者:cloudgamer http://www.cnblogs.com/cloudgamer/archive/2010/04/01/ImageZoom.html