初识文件系统和软硬链接

什么是文件系统?

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

        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
下一篇 2017-07-20

相关推荐

  • Linux中的权限修改指令及正则表达式

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 [root@centos6 ~]# cp -r /etc/skel/ /home/tuser1 [root@centos6 ~]# ls -la&…

    Linux干货 2016-10-24
  • M20 – 1- 第二周博客(2):Linux的文件系统与结构

    Linux系统对于一个初学者来说,其实并不那么容易.所以了解其系统的结构,及其表示的含义是非常重要的.否则安装好系统后,都无从下手.也不知道怎么办。下面介绍一下Linux 的目录结构.及每个目录表示的含义.方便初学者学习和使用Linux系统。 从上图可以看出Linux的目录结构属于树状型的,是否已经对Linux的结构有个大概的认识了呢,接下来讲的是这些目录中…

    Linux干货 2016-08-02
  • Linux发展史

    Linux发展史 一、历史 (一)、Unix 1、Unix操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构。 2、最早由KenThompson(汤普逊)、Dennis Ritchie(丹尼斯·里奇,C语言之父,Unix之父)和Douglas McIlroy(麦克罗伊,程式设计师)于1969年在AT&T的贝尔实验室开发。 3、目前它的商标…

    Linux干货 2016-10-14
  • C语言的整型溢出问题

    整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件。在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为,以及如何防范,以写出更安全的代码。 什么是整型溢出 C语言…

    Linux干货 2016-06-03
  • Acheng学习宣言

    我是Acheng,我参加了马哥Linux运维网络班,从2016年9月开始我将跟随马哥学习Linux技术。我的学习宣言是:再努力也不为过!朝着活学活用,做到做精的方向努力吧! 

    Linux干货 2016-10-25
  • CentOS7常用网络管理命令总结

    一、CentOS7网络接口命名策略(systemd)二、CentOS7的基础网络管理命令2.1 NetworkManager服务2.2 nmtui文本交互式工具2.3 nmcli命令行接口工具nmcli的语法说明NetworkManager整体状态显示显示所有连接或仅活动的连接显示所有设备的状态显示指定设备的所有连接属性添加动态的以太网连接(DHCP)添加静…

    Linux干货 2016-06-09