软链接和硬链接的区别

文件管理

前言

Linux的一则哲学:一切皆文件。既然入坑,那么管理linux就是管理一堆文件,操作文件这是展示个人十八般武艺的时候,功夫高下一招下。怎么成为高手,高手的招式都有哪些,拳脚掌刀枪棍棒,一招一式如何练就。

1文件存储

文件存储就好比每个练武人必备的技能——挨打,在你耍十八般武艺前,必须先扛住对方的一掌。我们不必拥有金刚罩铁布衫,至少要学会如何躲避拆招。

linux中存储一个文件,我们把文件分为两个部分存储,一部分是信息部分,一部分存储数据。

存储信息的部分叫inode,存储数据的部分叫blockinode的结构与数据的关系图1.1

aaa.png

1.1 inode的结构与数据的关系图

Inode是不可以跨分区,就好比每个小区都有门牌号,inode就是门牌号,小区就是分区。门牌号虽然一样,但是里面住的人不一样。

2文件类型

文件操作前,我们要了解都有哪些文件类型,就像一个武林盟主的寻常的一掌,快一分慢一分都是累赘。真正的高手的任何一招都是经过千万磨练的,有些文件类型我们看似了解,其实我们不知道高手为什么要用3分力,为何不直接施展绝技一招秒杀。

1f,普通文件file

文件也有很多类型:文本文件、视频文件、压缩文件文件。一个文件占用一个inode

可以使用file FileName查看文件类型。

# file anaconda-ks.cfg

anaconda-ks.cfg: ASCII English text

2d,目录文件directory,目录的数据块block内放置该目录下的文件的文件名和inode信息

3l,链接文件link,(链接文件分为硬连接和软连接)l只指软链接。

1硬链接,其本质是在目录文件的数据快中添加一条新的数据,inode直接指向被链接文件的inode,使这个inode有两条或多条路径可以直接抵达。感觉很不形象,其实就是在一个井里插了两个水泵。

使用ll dir可以查看文件的硬链接数,红色部分内就是链接数。

bbbb.png

2软链接,则是前面一个水泵把水抽到自己家水池里后,后面的人把水泵插到前一家人的水池里。既然是把水管插到别人家的水池里,那么前一家断水,你家也就断水了。

当我们用的是软连接你想用水必须知道前一家的水池在哪里?这里就比较有趣了,比如前一家搬家了,那我们怎么办。断水。这里就分为两种情况了。

其中一种叫相对路径,比如前一家给你留了他家的电话,他再怎么搬家我们都会知道他再哪里,但为了找到他家比较麻烦,每次想喝水都要先给他打电话,我们按照电话里的方法一步步跑到他家。

还有一种就是使用绝对路径,他直接告诉我们他家住在男儿国250号,但是这有一个坏处,国家改名为女儿国后,我们就找不到他家了,我们就会永远的断水了。

4c,字符设备character

接受字符的文件,比如终端的tty

5b,块设备block

磁盘文件一般为块文件,可以随机读存。

6s,套接字文件sockt

用于同一主机进程间通信的文件,比管道强大的多。

7p,管道文件pipe

把数组、字符串等转送给其他进程。

3文件属性

文件属性

-rw-r–r–  1 root root      0 Oct 19 18:17 11aa

第一位是文件类型

234位是的属主的读、写、执行权限

567位位是属组的权限

8910位是其它用户的权限

1是硬链接数

第一个Root是属主

第二个root是属组

0是文件大小

然后就是文件访问时间

最后是文件名

文件的信息不仅如此,使用stat可以查看文件更多的信息。文件的访问时间简称atime,修改时间简称mtime,改变时间简称ctime。centos6文件系统的atime的时间时实时更新的,centos7上的atime只有时间相差超过一天才会更新。

总结

  linux的文件结构,其中inode是根本其中存放文件的信息,block存放数据。文件的的block放的是数据,目录的block中存放的是其子目录和文件的名称和inode号。


原创文章,作者:mortimer2015,如若转载,请注明出处:http://www.178linux.com/53254

(0)
mortimer2015mortimer2015
上一篇 2016-10-20 21:00
下一篇 2016-10-20 21:04

相关推荐

  • rpm数据库损坏 不能使用正常使用yum的处理方法

           不知道有没有跟我一样的小伙伴,在使用yum安装软件时,发现无法正常使用yum安装软件包,下面出现几句英语提示。在使用rpm时也无法正常的使用。其实 是rpm数据库崩溃导致的 下面就简单的介绍一下怎么回复,让其正常的工作,很简单几个命了即可。 1. 出现错误提示,这时我们需要认真的阅读下面的提示,不要乱找原…

    Linux干货 2017-06-13
  • bash 循环和函数

    回顾: 循环 循环控制:break,continuewhile , for循环的特殊用法for (());do     循环体donewhile read VARAIBLE;do     循环体done <&nbs…

    Linux干货 2016-08-24
  • Linux文件和目录管理

    Linux目录和文件管理 Linux文件信息详述 文件数据存储在块中 文件元数据存储在inode中 文件名和其对应的inode号码存储在目录项中 数据块的概念: 文件在硬盘上的最小存储单位叫做扇区,1扇区=512字节,操作系统读取硬盘的时候不会一个一个读,这样太慢,会一次连续读多个扇区,即一个读取一个“块”,常见的 1块=八个扇区=4kB inode的概念:…

    Linux干货 2016-11-04
  • Ansible+Corosync+Pacemaker+nfs实现http高可用

    目录: (一)实验环境 (二)准备工作 (三)为node1和node2配置基础配置 (四)使用ansible部署nfs (五)使用ansible部署corosync和pacemaker (六)使用ansible安装crmsh工具 (七)使用crmsh配置http高可用 (八)验证 (九)需要注意的地方 (一)实验环境 1.1、环境拓扑 1.2、所需系统 4台…

    Linux干货 2016-04-29
  • 第二周作业

    一Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 which命令:显示(shell)命令全部的路径 which [option] programmame […] –skip-alias:忽略别名   whereis命令:搜索二进制程序,源码,和帮助手册页的命令 whereis [option] na…

    Linux干货 2017-02-18
  • rpm软件包管理

    软件包管理 软件运行环境 API   应用程序开发接口 ABI   二进制接口 Rpm包命名方式 Name-version-release-arch-rpm 例如 zziplib-devel-0.13.162-5.el7.i686.rpm zziplib :主包名 dewel:次包名 0.13.162: 主版…

    Linux干货 2016-08-24