这次说一下ln的相关原理和用法

在开始介绍连接( Link ) 之前,我们得先来了解一下什么是inode 这个东西?

说实在的,这个东西真的很重要,不了解它的时候,很容易搞错很多的东西

什么是inodes ?

要提到inode 之前,我们得先来了解一下硬盘的整体构造才行!硬盘里面有多个硬盘盘片组合在一起

而一个硬盘盘片为圆形的,其中,每一个硬盘盘片上面都有个可以读写的磁头( Head ),

而当这个磁头固定住,让硬盘盘片转一圈,那么那一个圆形的就是磁道( Track ),而在硬盘内的几个

硬盘盘片同半径的那一圈的磁道总和称为磁柱( Cylinder ),而由圆心向外画出直线,那就是硬盘的

最小储存物理量,我们称为扇区( setctor ),一个扇区的物理量大约是512 bytes ( 约0.5K )。

磁头( Head ) :可擦写的金属磁盘;

磁道( Track ) :读写头转一圈( 同心圆的一圈) 的量;

扇区( Sector ) :最小的物理储存量。

知道了大体的硬盘构造之后,再来谈一谈怎么硬盘分割( partition ) 我们在进行硬盘分割的时候,

最小都是以磁柱为单位进行分割的,那么分割完成之后自然就是格式化( format ),在Linux 里面

我们在进行格式化的时候必须要考虑到Block 与inode 的信息,这个block 还好理解,他是我们磁

盘可以记录的最小单位,是由数个sector 所组成的,所以他的大小通常为n*512 bytes ,例如4K 。

那么inode 是什么? Block 是记录『文件内容数据』的地区,而inode 则是记录『该文件的属性、

及该文件放置在哪一个Block 之内』的信息!所以,每个文件都会占用到至少一个inode 。而当我

们Linux 系统要找到这个文件时,他会先去搜寻inode table 找到这个文件的属性及数据放置的地区

然后再到数据去找到数据存放的Block 进而将数据取出利用。这个inode 数目在一开始就会被设定好

他的设定方式通常是利用( 硬盘大小/ 一个容量),这个容量至少应该比Block 要大一些较佳,例如

刚刚的Block 订为4K ,那么inode 可以订为8K 左右。所以,一个1GB 的硬盘,如果以8K 来规划他的

inode 数时,他的inode 就会有131072 个inode !而一个inode的大小为128 bytes 这么大!这么一来

的话,我们就可以清楚的知道了,那就是一个partition 格式化为一个filesystem 之后,基本上,

他一定会有inode table 与data area 两个区块,一个用来记录文件的信息与该文件放置的block 区块

一个用来记录文件的内容!

由于我们Linux 在读取数据的时候,是先查询inode table 以得到数据是放在那个Block 里面,然后再

去该Block 里面读取真正的数据内容!然后,那个block 是我们在格式化硬盘的时候规定出来的一个值

这个block 是由2 的n 次方个sector 所集结而成的!所以,他是0.5K 的倍数!假设我们block 规划为

4KBytes 好了,那么由于一个inode 与一个block 最多均只纪录一个文件,所以,如果你的一个文件有

0.1 K bytes 这么大时,你要晓得的是,由于你的block为4K bytes ,因此,你就会有3.9 Kbytes 的空

间『浪费掉』 !所以,当你在格式化硬盘的时候,请千万注意到你的系统未来的使用方向 !

当block 越小( 最小为0.5K ) 、inodes 越多,可利用空间越多,但是大文件写入效率较差

适合文件数量多但是文件容量小的系统,例如BBS 或者新闻群组news 这方面的服务之系统

当block 越大( 最大可到16 * 0.5K 以上) 、inodes 数越少,大文件写入效率较佳,但浪费的空间

较多适合档案容量大的系统。

以上内容一定要看会

简单的说

inode 是记录 Block 的信息

Block 是记录 数 据 的地区

ln

知道了什么是inode 与他的功能之后,接着下来就要来介绍link!说到link 其实也没有什么大不了的,

说穿了,就真的有点像是Windows 的『快捷方式』一样,不过, link 的功能要好的多 Link 又分为

hard link 与symbolic link 两种

Hard Links

刚刚说过,当系统要读取某一个文件的时候,就会先去读inode table ,然后再根据inode 的信息到

block area 去将数据取出来利用!而hard link 就是直接再建立一个inode 连结到文件放置的block

区块。也就是说,进行hardlink 的时候,实际上,你的文件内容不会改变,只是你在查询的时候,利用

原来的inode 与后来的inode 均可被指定到该文件放置的地点,因此两个文件的内容会是一样的!所以

读取任何一个inode 的结果都是存取在同一个文件的内容就是了。不过,这样一来就有个问题 ,因为

inode 是会连结到block 区域去的,而『目录』本身仅消耗inode 而已,那么一来的话, hard link 不

就不能link 目录 ?对的!没错! Hard link 有两个最大的限制

1. 不能跨filesystem ,因为不同的filesystem 有不同的inode table

2. 不能link 目录!

Symbolic Links:

相对于hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一个独立的文件,而这个

文件会让数据读取指向他link 的那个文件内容!由于只是利用文件来做为指向的动作,所以,当来源档

被删除之后,symbolic link 的文件用不了了

看样子,似乎hard link 比较安全,因为即使某一个inode 被删掉了,只要有任何一个inode 存在,

那么该文件就不会不见!不过,由于Hard Link 的限制太多了,包括无法做『目录』的link ,所以

在用途上面是比较受限的!反而是Symbolic Link 的使用方向较广

简单的说

Hard Links 就是直接再建立一个inode 连接

Symbolic Links 就是在建立一个独立的文件,指向它link 的那个文件内容

如果不加任何参数的话,那么就是Hard Link !

看到了吧,这个1变成2了,这就是占用掉的inodes的数值

-s 就表示是 Symbolic Links

跟cp 也不一样!因为虽然Hard Link 的文件看起来是有容量的,但是基本上还是指向原来的

文件,所以 ,整体容量是没有增大的 !

加了一个Hard Link后,还是没变

但加了一个Symbolic Links 整体和容量就变大了

而如果这个时候删掉passwd 会发生什么事情呢?

passwd-hard的内容还是会跟原来passwd 相同,但是passwd-sym 就会找不到该文件 !

就是因为这两种连接连的东西不一样

虽然使用-s 的参数时,就做成差不多是Windows 底下的『快捷方式』的意思(Symbolic Link)不过

需要特别注意的是, Linux 的link 与Windows 的快捷方式是不一样的东西!举个例子说,当你在

Windows 建立一个快捷方式时,你可以在这个快捷方式内修改任何数据,而你的原始数据并不会跟着变!

不过,当你修改Linux 下的link 文件时,则更动的其实是『原始文件』,所以不论你的这个原始档被

连结到哪里去,只要你修改了连结档原始文件就跟着变 !

如果你做了底下这样的连结

ln –s /bin /root/bin

那么如果你进入/root/bin 这个目录下,『请注意!该目录其实是/bin 这个目录,因为你做了连结了』

所以,如果你进入/root/bin 这个刚刚建立的连结目录,并且将其中的数据删掉时,/bin 里面的数据

就通通不见了!这点请千万注意!并不是/root 底下的资料都是root 的!还需要注意一下该属性才行!

看,以a开头的那些文件没了 现在在/root/bin下

我们去/bin下去看看

看,也是一样

所以,文件的属性要多意思一下

删文件也是

上面有很多文字的东西,要看明白

成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

附件下载:

linux连接教程视频,[原创]linux视频教程之连接相关推荐

  1. 华硕服务器怎么装系统教程视频,华硕怎么安装linux系统教程视频

    华硕怎么安装linux系统教程视频 [2021-02-13 09:38:08]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&qu ...

  2. Linux培训教程 Git在linux下的使用

       *初始化git仓库,使用gitinit命令 *添加文件到git仓库分两步: 1.使用git add filename ;可分多次使用,添加多个文件到暂存区 2.使用git commit -m & ...

  3. win8连接wifi成功但受限制_必看丨“格力+”手机APP,智能WiFi连接教程。(含AI语音连接教程)...

    早上出门忘关空调回家就想感受惬意凉爽格力智能WIFI空调内置WIFI智能模块只需安装格力+APP即可轻松实现远程操作人在远方,家在身边."格力+"APP连接教程指引(视频)准备工作 ...

  4. WIN7远程桌面连接方法!远程控制教程!XP远程桌面连接教程!如何设置远程桌面连接?远程桌面连接设置...

    WIN7远程桌面连接方法! 首先,我们要在被连接的计算机上进行设置.使用鼠标右键单击"计算机"图标,选择"属性" 在打开的"系统"窗口点击& ...

  5. 联想电脑linux安装教程视频,linux安装教程

    类型:教育学习大小:11.9M语言:中文 评分:10.0 标签: 立即下载 linux系统的功能是不错的操作系统,其性能稳定,继承了Unix以网络为核心的设计思想,用户根据自己的需求进行安装来使用,l ...

  6. c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...

    [原创]linux下编码转换问题,C语言实现,使用iconv函数族68 (2012-07-30 02:49:00) 标签: linux 68 c语言 杂谈 #include #include #inc ...

  7. Linux系列教程——Shell、Linux文件管理

    文章目录 Shell 1.什么是Bash shell(壳) 2.Bash Shell能干什么? 3.平时我们如何使用Shell呢? 4.Shell提示符 5.Shell基础语法 2.Bash Shel ...

  8. WIN7远程桌面连接方法!远程控制教程!XP远程桌面连接教程!如何设置远程桌面连接?远程桌面连接设置!

    WIN7远程桌面连接方法! 首先,我们要在被连接的计算机上进行设置.使用鼠标右键单击"计算机"图标,选择"属性"  在打开的"系统&quo ...

  9. maya linux 安装教程视频,Maya快捷键插件增强工具ZooTools Pro 2.2.4 for Maya Win/Linux+ Assets pack 2.3+视频教程...

    Maya快捷键插件增强工具ZooTools Pro 2.2.4 for Maya Win/Linux+ Assets pack 2.3+视频教程 ZooTools Pro 2.2.4(以前称为C3dC ...

最新文章

  1. kafka的简单使用
  2. php历史上的今天源码,代码获取历史上的今天发生的事_基础知识
  3. 踵事增华:新形势下如何高效撰写科技论文!
  4. 密码机分类---服务器密码机
  5. 阿里巴巴争夺中国蓬勃发展的电动汽车市场
  6. 验证码输入错误后自动刷新验证码
  7. 一个手机号码可以申请二个微信号吗?如何申请?
  8. DELL r340服务器U盘安装Centos7
  9. 什么叫单模光纤_什么叫单模光纤_单模光纤的特点是什么 - 全文
  10. explore exploit
  11. 在win10查看本机linux的文件,在Windows 10中本机使用Linux的技巧
  12. k1658停运_最新通知!福州这些列车停运!出行请注意
  13. arping命令使用方法
  14. 蓝牙与UWB的技术对比
  15. seleniumbase学习总结4 - 运行测试用例
  16. 制作minist格式的图像数据集
  17. 香港金曲奖分析(1983-2017 by SIRMAN)
  18. 一位“双11”守夜人的独白
  19. 有限元网格生成程序及软件
  20. 南邮 OJ 1659 牛顿苹果

热门文章

  1. 今日头条Marketing API小工具(.Net Core版本)
  2. .NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程
  3. aspnet core 2.1中使用jwt从原理到精通二
  4. 使用 C# 代码实现拓扑排序
  5. Asp.Net Core Authentication Middleware And Generate Token
  6. ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”
  7. django13:Session与Cookie操作
  8. vuejs 和 element 搭建的一个后台管理界面【收藏】
  9. 【C#程序设计】教学讲义——第一章:C#语言概述
  10. SQL Server数据库锁的类型、用法及注意事项详解