Linux下的硬链接与软链接

本文总结自:

https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html#fig2

一个文件可以用下图表示:

其中,文件名是我们能看到的那个名字。

inode被包含在元数据(metadata)中,元数据中记录文件的附加属性,比如文件大小,创建时间等等。

inode是索引节点号,是文件的唯一标识。可使用命令:

ls -i

来查看

data blocks是文件数据块,记录的是文件的真实内容。

这里要说一句:

当我们用rm删除文件的时候,仅仅是解除filename和inode的引用,一般来说并不会摧毁问文件数据。
而硬链接,就相当于对同一个inode增加了一个别名。

所以用rm删除文件的时候,如果对inode创建了硬链接,则还可以通过另一个filename来访问。

硬链接的创建方法:

ln oldfile newfile

软链接,则是创建一个data block,这个data block中存储的是另外一个filename。

所以当我们用rm删除了file,那么cat softlink将不会得到实际文件的输出。

软链接的创建方法:

ln -s oldfile newfile

使用ls -l 命令可以看到文件的链接数,这个信息出现在输出的第二列.

创建软链接时,文件的链接数不会增加

同时,可以看到->符号,这个符号的指向是从软链接文件指向源文件。

使用ls -i指令可以发现,硬链接文件的inode号码和源文件相同,软链接文件的inode号码和源文件不同,这和以上的分析是相同的。

原文地址:https://www.cnblogs.com/geeklove01/p/8445605.html

时间: 2024-08-08 01:24:32

Linux下的硬链接与软链接的相关文章

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现

linux中的硬链接和软链接

一.ln命令概述 它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间. 二.硬链接和软链接的区别 硬链接:是通过文件系统的inode连接来产生新的文件名,而不是产生新文件 软链接:类似Windows的快捷方式功能的文件,可以让你快速连接到目标文件(或目录) 三.硬链接 语法:ln

Linux中的硬链接和软链接介绍和实验

在Linux中,链接分为硬链接和软链接,软链接又称为符号链接(Symbolic Link),在不带任何参数的情况下,使用ln命令创建的是硬链接. 硬链接:硬链接是通过索引节点来进行链接的.在Linux的文件系统中,保存在磁盘分区种的文件不管是什么类型的文件,都会为它分配一个编号,这个编号被称为索引节点编号(Inode Index)或Inode.多个文件名指向同一个索引节点(Inode),一般这种链接就称为硬链接.硬链接的作用之一是允许一个文件拥有多个有效路径名.这样用户可以建立硬链接到重要的文件

Linux文件系统中硬链接和软链接的区别 (转)

建立硬链接命令:ln src-link dest-link建立软链接:ln -s src-link dest-link 1. 硬链接是别名,软链接是快捷方式 2. 硬链接和源链接指向同一个i节点,软链接不同 3. 硬链接不能跨文件系统,而软链接可以 4. 删除硬链接和软链接都不会影响原链接 5. 硬链接只能针对文件,软链接可以针对文件和目录 6.关于 I节点的问题 .硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件

硬链接与软链接的缠绵

Preface: 本文以站在不懂到懂的角度,知识开始理解有错误,但慢慢进阶,最后豁然开朗.要点评先看完再说. Basic_Knowledge: 在linux下有硬链接和软链接两种,硬链接为文件的别名,它和软链接一样,都指向文件,但是硬链接不是一个文件. linux下判定是不是一个独立文件看的就是其inode是不是独一无二的,ls -l 一下,如果链接数是1,那么这肯定是一个文件. 命令:ex > ln      test     f_h     ||       cp     -l    tes

Linux文件系统的分区、硬链接、软链接

首先从磁盘结构讲起.按结构从小到大区分: 扇区,固定512字节 磁道 柱面,分区时的最小单位,开始柱面到结束柱面为一个分区 第一个扇区很重要,它包括: 主引导分区MBR(446字节),内含引导加载程序Boot loader.它有如下功能: 提供菜单:可选择不同的系统进行加载,多操作系统的基础 加载内核文件:直接加载可使用的操作系统内核程序 转交其它Boot loader:跳转到其它分区,执行那个分区的Boot loader,用于启动不同操作系统 分区表(64字节),保存每个分区的起始.结束柱面.

linux 软连接和硬链接的区别

linux 软连接和硬链接的区别 2011-06-27  zale的图...   阅 3345  转 23 转藏到我的图书馆 微信分享: 4点不同 : (1)软连接可以 跨文件系统 ,硬连接不可以 .实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 .ln aa.txt /root/bb 失败 .(2)关于 I节点的问题 .硬连接不管有多少个,都指向的是同一个I节点,会把

linux 下的使用 ln 创建 软链接 和 硬链接

linux 下的一个指令 ln 作用: 创建软链接或者硬链接 Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata) 用户数据里记录了文件的真正内容. 元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也

linux下硬链接和软链接

[硬链接] 硬链接是指通过索引节点进行链接,太复杂了看操作吧. 硬链接的创建 [[email protected] ~]# mkdir -p /test/oldboy/   创建一个目录 oldboy/ [[email protected] ~]# cd /test/oldboy/             切换到这个目录中来 [[email protected] oldboy]# touch oldboyfile     #创建一个测试文件 制作硬链接 [[email protected] ol