什么是文件系统?
磁盘分区以后必须设置磁盘的文件系统才可以正式使用,文件系统定义了文件存储的类型,也就是这个文件要按照怎样的方式存入磁盘分区。
linux中文件系统的类型:ext3、ext4、xfs
windows中的文件系统类型:fat32、ntfs、extfat
说到存储方式,就要聊一聊inode索引和block块了,为了提高资源的利用率,系统把分好的磁盘分区,又划分了很多个有序的block块,存储容量2K 4K 8K 16K不等,根据文件的大小按需分配。如果文件很大,就会占用多个block块,这些block块会记录在对应的inode号中。目录怎么找到这些数据块呢?目录其实是一个特殊的文件,里面存放着文件的权限、所属人、所属组、Inode、文件名等信息。目录通过文件名和inode映射,找到inode指向的所有数据块
软硬链接的叙述
Inode可以和多个文件名进行映射,这样文件的有效路径就有多条,这多条有效路径就叫做文件的硬链接。你创建文件时起的那个文件名,其实也是硬链接。删除个别硬链接不会影响其他硬链接对源文件内容的访问,但如果所有硬链接都被删除,inode就会被释放,block也将会被新来的数据覆盖掉(一个文件至少要有一条硬链接)
软连接:软链接存储的是一条可以访问到源文件的有效路径,通过该路径访问到源文件所在目录。再由inode找到对应的文件内容。因为软连接存储的是一条硬链接的路径,所以它可以跨分区,硬链接是通过inode进行访问的,这就限制了它必须和文件内容在一个磁盘分区(每个分区都有自己独立的inode号)
软链接优点:可以跨分区,就像快捷方式一样方便
缺点: 链接的路径一旦消失,软链接就会失效
硬链接优点:可以建多条有效路径,来提高数据的安全性(防止误删)
缺点:不可以跨分区,访问有局限性
下面让我们以真实的环境去看看软硬链接长什么样子
硬盘状态
[root@localhost app]#df / /app
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 48803552 4391280 44412272
9% /
/dev/sda3 48803552 32948
48770604 1% /app
跨分区实现软链接
[root@localhost app]#pwd
/root
[root@localhost app]#echo welcome
to mageEdu > /app/file01 将结果重定向至file01文件
[root@localhost app]#ln -s
/app/file01 file01 ./file01作为/app/file01 的软链接
[root@localhost app]#ll file01 查看链接状态
lrwxrwxrwx. 1 root root 11 Jul 20 14:45
file01 -> /app/file01
[root@localhost app]#cat
/root/file01 通过软链接访问文件内容
welcome to mageEdu
外链接的搭建
[root@localhost app]#cd /app
[root@localhost app]#ls
file01
[root@localhost app]#mkdir whb
[root@localhost app]#tree
.
├── file01
└── whb
[root@localhost app]#cd whb
[root@localhost app]#ln ../file01
f1
[root@localhost app]#ls
f1
[root@localhost app]#ls -li f1 通过查看硬链接和源文件状态
67 -rw-r–r–. 2 root root 19 Jul 20 14:44
f1 会发现它们inode号是一样的
[root@localhost app]#cd ..
[root@localhost app]#ls -li
file01
67 -rw-r–r–. 2 root root 19 Jul 20 14:44
file01
[root@localhost app]#cat f1 通过硬链接访问文件内容
welcome to mageEdu
测试
1、 删除源文件不会影响其他硬链接访问文件内容,而软链接失效
原创文章,作者:whb,如若转载,请注明出处:http://www.178linux.com/81854