软链接和硬连接

一  问题引入

(1)软连接和硬链接的区别?

(2)硬链接支持跨文件系统不?为什么?

(3)不同文件系统是如何实现传输的?

不错

二  文件系统的相关概念

传统的磁盘和文件系统应用:一个分区就能被格式化成一个文件系统

现在:LVM和磁盘阵列的新技术,能够将一个分区格式化成多个文件系统,也能将多个分区合并成一个文件系统(LVM、RAID)

原因:一个分区对应不同的逻辑卷,进而格式化成不同的分区!

总结不再针对分区来格式化了,通常称乎一个可被挂载的数据为一个文件系统

Ext2(linux second extended file system ,Ext2fs)

三  文件系统是如何运行的

核心:与文件系统的文件数据有关

操作系统的文件数据:文件的实际内容相关属性(文件的权限rwx和文件的属性-->所有者、用户组其他人、时间、大小等)

问题1:文件系统将这两部分的数据放置在什么位置?

权限和属性放置在inode;实际内容放置在data block

inode:index node ,记录文件的属性一个文件占用一个inode同时记录此文件的数据所在的block号码(操作数据的关键)!

block:实际记录文件的内容,若文件太大,会占用多个block!

索引式文件系统:indoe记录的是记录文件数据顺序全部block,典型的就是ext2

FAT:文件系统并没有inode的存在,它的每个block号码都记录在前一个block号码中,读取比较费尽!

FAT问题:同一个文件数据写入的block分散太过离散,磁盘可能多转几圈才能完整的读取这个文件的内容!

碎片整理:将同一文件所属的block汇合在一起,读取比较容易,主要发生在Windows的系统中!

ext4的block大小默认是4KB

   Linux新建一个目录和一个文件相应的分配

创建目录:会分配一个inode与至少一块block给该目录

       inode:记录该目录的相关权限和属性,并记录分配到的那块block

       block:目录下的文件名与该文件名所占用的inode号码(二者的映射),这就是目录的内容

理解:文件名就是inode的别名,通过文件访问,最终还是通过inode来访问数据!

创建文件:分配一个inode与相对于该文件大小的block数量给文件

明确:inode本身不记录文件名,文件名的记录是在目录的block中!

  挂载点的几点注意事项

(1)挂载点一定是目录

(2)挂载点是进入该文件系统的入口

六   常见的文件系统

(1)传统的文件系统:ext2/FAT/iso(光盘)

(2)日志文件系统:ext3/ext4/NTFS/XFS

(3)网络文件系统:NFS/SMBFS

#(1)查看linux支持的文件系统

ls -l /lib/modules/$(uname -r)/kernel/fs

#(2)系统已经加载到内存中支持的文件系统

cat /proc/filesystems

文件系统的类型

(4)linux VFS

问题1:linux的内核是如何管理这些认识的文件系统?

答:通过一个名叫Virtual Filesystem Swith(虚拟文件系统 VFS)的内核功能来读取文件系统!

用户并不需要知道每个分区上头的文件系统是什么,VFS会主动帮我们做好读取的操作!

七  硬连接和软连接

已知:由于一个文件占用一个inode,所以同一个文件系统的某个inode只会对应到一个文件内容

判断:可以通过判断inode号码来确定不同的文件名是否是相同的文件

###############

硬链接:就是同一个文件使用了多个别名,他们有共同的 inode,只是某个目录下新建一条文件名连接到某个inode的关联记录!

特点

      (1)不能跨文件系统

        原因:首先不同的文件系统的文件管理方式不同,甚至有些文件系统不是索引文件系统,并不一定两个文件系统的inode有相同的含义。再者即使有相同inode含义,硬链接的几个文件,具有相同的inode号码。不同文件系统中,也可能有使用该inode号的文件,这将产生矛盾

      (2)不能连接到目录

        原因:因为如果使用 hard link 链接到目录时, 链接的数据需要连同被链接目录下面的所有数据都创建链接,举例来说,如果你要将 /etc 使用实体链接创建一个 /etc_hd 的目录时,那么在 /etc_hd 下面的所有文件名同时都与 /etc 下面的文件名要创建 hard link 的,而不是仅链接到 /etc_hd 与 /etc 而已。 并且未来如果需要在 /etc_hd 下面创建新文件时,连带的/etc下面的数据又得要创建一次 hard link ,因此造成环境相当大的复杂度。 所以目前 hard link 对于目录暂时还是不支持的!

############

软连接:类似于Windows的快捷键,你可以将windows某个应用的指向改变,例如QQ链接到火狐浏览器!

过程:会创建一个新文件,文件的内容是指向它连接的那个文件的文件名,readlink来读取,和源文件指向不同的inode!

特点:跨文件系统(不是通过inode)、可以连接到目录!

注意:如果链接到目录,进入该链接目录就是进入真实的目录,进行相关的操作就是操作源文件!

链接文件:操作软连接不影响真实的文件,但是操作真实的文件会影响软链接(位置、内容)

ls -i 权限后面字段含义:文件被记录的次数,或者说是有多少个文件连接到这个inode!

硬连接和软连接的区别

还可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值