初识文件系统和软硬链接

什么是文件系统?

        磁盘分区以后必须设置磁盘的文件系统才可以正式使用,文件系统定义了文件存储的类型,也就是这个文件要按照怎样的方式存入磁盘分区。

        linux中文件系统的类型:ext3ext4xfs

        windows中的文件系统类型:fat32ntfsextfat

        说到存储方式,就要聊一聊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

(0)
whbwhb
上一篇 2017-07-19 21:00
下一篇 2017-07-20 16:38

相关推荐

  • 第二周课堂练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。         ls     ls命令用来显示目标列表,在Linux中是使用率较高的命令。      -a:显示…

    Linux干货 2016-09-15
  • shell脚本编程之运算

    一、数学运算   1、expr命令     此命令可以在命令行执行数学运算操作。     由于此命令使用时过于麻烦,所以不推荐使用。   2、方括号和双圆括号      $[ EXPRESSION ]      $((&…

    Linux干货 2015-12-31
  • 作业-第二周

    1、linux常用文件管理命令 ls rm chmod touch mv cp 2、echo $? 如果返回0则成功,其他失败 3、 mkdir /tmp/{a,b}_{c,d} mkdir -p /tmp/mylinux/bin /tmp/mylinux/boot/ /tmp/mylinux/boot/grup /tmp/mylinux/dev \ /tm…

    Linux干货 2016-06-23
  • Linux哲学思想

    一切皆文件     这是第一知首先会想到的,所以在linux中的所谓文件夹也是文件,如果你用vi /tmp,也会发现其实里面是有内容的,对于文件而言,它的data block存放的是文件的内容,对于文件夹,它的data block存放的是文件的inode及对应的文件名。从结构上看它们是一致的。当然其它的诸如设备,管道等…

    Linux干货 2016-10-30
  • 谷歌三大核心技术(一)The Google File System中文版

    摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是…

    Linux干货 2015-04-13
  • nginx_http_proxy,upstream,stream模块简析

    一. ngx_http_proxy_module模块:         模块功能: 为后端httpd服务做反向代理, 并且与Httpd 之间使用http进行通信       1、proxy_pass URL;  &nbs…

    Linux干货 2016-10-29