在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数。那么这个连接数是干什么的?这就要理解inode。

先说一下文件是怎么存储的。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。"块"的大小,最常见的是4KB,即8个“扇区”组成一个“块"。文件数据都储存在“块”中,那么就得有个地方来储存文件的信息(比如创建者,创建时间等),这个区域就叫“inode”,即索引节点。

当创建一个文件时,系统分配一个inode及能够装载文件大小的blocks给它,inode记录文件的属性,包括block的位置,block记录文件内容。

当创建一个目录时,系统分配一个inode和一个block,若此目录下的文件过多的话,会开辟一个新的block给它。inode记录目录的属性,block记录这个目录下的所有文件和子目录对应的inode,通过block可以找到某个文件的inode位置,从而找到文件内容。

这里可以通过“stat +文件名” 的命令来查看文件inode的信息,如下图:

然而,在硬盘的同一个文件可以通过不同的路径来访问它。接下来要讲的软、硬连接就是建立在inode和block的关系之上。

硬连接:一般情况下,一个文件名对就一个inode,但Linux允许多个文件名对应同一个inode,也就是说通过不同的文件名可以访问同一个内容。删除一个文件名不影响其它文件名的访问。语法如下:

ln 源文件 目标文件(要创建的文件)
#这里只能是文件,不可以是目录

例如:

先查看一下当前一个叫yum.sh文档的连接数,如图所示为2

执行添加硬连接的指令:

执行指令之后,在打开目录可以发现,出现新的文件yum_hLink.sh

再查看yum.sh的连接数,如下图所示,连接数增加了一个:

软连接(或符号链接):若文件(目录)A是文件(目录)B的软连接,A的内容是B的路径,想当于A是B的快捷方式。当删除A时,不影响B的访问;当删除B时,就会报错。

语法:

ln -s 源文文件或目录 目标文件或目录
#软连接可以是目录

例如,test 是一个目录:

执行指令后,当前目录下多了一个test_sLink目录

查看连接数,发现test 目录的连接数并没有增加,而test_sLink 以 "->"形式来表示是test的软连接:

转载:https://www.cnblogs.com/jiangu66/p/3206376.html

Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)的更多相关文章

  1. linux学习(2)——文件和目录管理

    (二) 一:绝对路径和相对路径                                                                                     ...

  2. Linux命令工具基础02 文件及目录管理

    文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...

  3. Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  4. Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  5. linux命令学习(一)—— 文件和目录管理命令

    首先需要知道的是命令提示符 [root@localhost ~] # 当前登录用户(root) 主机名(localhost) 当前所在目录(家目录) 超级用户提示符(#) 普通用户提示符($) 1.1 ...

  6. Linux 编程学习笔记----ANSI C 文件I/O管理

    转载请注明出处:http://blog.csdn.net/suool/article/details/38129201 问题引入 文件的种类 依据数据存储的方式不同,能够将文件分为文本文件和二进制文件 ...

  7. Python3学习笔记24-操作文件和目录

    环境变量 在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看: import os print(os.environ) 操作文件和目录 操作文件和目录的函数一部分放在o ...

  8. python学习笔记八:文件与目录

    一.文件的打开和创建 1.打开 open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello ...

  9. Linux学习(四)档案与目录管理

    1. 目录与路径  1.1 相对路径与绝对路径  1.2 目录的相关操作: cd, pwd, mkdir, rmdir  1.3 关于执行文件路径的变量: $PATH2. 档案与目录管理  2.1 档 ...

随机推荐

  1. hdu1316(大数的斐波那契数)

    题目信息:求两个大数之间的斐波那契数的个数(C++/JAVA) pid=1316">http://acm.hdu.edu.cn/showproblem.php? pid=1316 这里 ...

  2. crm使用FetchXml分组聚合查询

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月09号  */ namespace Net.CRM.FetchXml {     using System;     using Micr ...

  3. B1588 [HNOI2002]营业额统计 set||平衡树

    平衡树题,求每个点的前驱,照例可以用set水过...(平衡树还是不会写) 又新学了一个用法: set <int> ::iterator s1; 这样s1就可以直接附为set中的地址了.但是 ...

  4. bzoj 3209 花神的数论题 —— 数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3209 算是挺简单的数位DP吧,但还是花了好久才弄明白... 又参考了博客:https://b ...

  5. 1961 躲避大龙(dfs)

    1961 躲避大龙  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond     题目描述 Description 你早上起来,慢悠悠地来到学校门口,发现已经是 ...

  6. Python 35 线程(1)线程理论、开启线程的两种方式

    一:线程理论 1 什么是线程 进程其实一个资源单位,而进程内的线程才是cpu上的执行单位 线程其实指的就是代码的执行过程2 为何要用线程   线程vs进程     1. 同一进程下的多个线程共享该进程 ...

  7. 线性预测与Levinson-Durbin算法实现

    在学习信号处理的时候,线性预测是一个比较难理解的知识点,为了加快很多朋友的理解,这里给出Levinson-Durbin算法的线性预测实现和一个测试Demo,Demo中很明确的把输入信号.预测信号.预测 ...

  8. [转]RDLC 动态列

    本文转自:http://blog.csdn.net/luochengbang/article/details/9964551 很久没有写博客了,关于动态列,国内很少资料有介绍动态列的,所想写点心得给哥 ...

  9. NoSQL概念

    NoSQL是非关系型数据库,即not only sql,key/value键值对存储. 现有Nosql DB产品:Redis/MongoDB/Memcached等等. SQL Sever是关系型数据库 ...

  10. swift-自定义TabBar工具栏

    class EBTAppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(ap ...