Linux中的链接文件_软链接和硬链接

一、链接文件介绍

Linux操作系统中的“链接文件”分为硬链接(hard link)和软链接(symbolic link)。两种链接的本质区别在于inode。以下是详细介绍:

  • 硬链接:当系统要读取一个文件时,会先读inode信息,然后再根据inode中的信息到块领域将数据取出来。而硬链接是直接再建立一个inode链接到文件放置的块领域,即进行硬连接时该文件内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。硬链接有两个限制:
  1. 不能跨文件系统,因为不同的文件系统有不同的inode table;
  2. 不能链接目录。
  • 软链接:与硬链接不同,软链接是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。举个例子:现在有一个文件a,我们做了一个软链接文件b,b指向a,当读取b时,b就会把读取的动作转发到a上,这样就读取了文件a。当我们删除文件a时,链接文件b不会被影响,但如果再次读取b时,会提示无法打开文件;然而当我们删除b时,不会对文件a造成任何影响。

二、如何建立软链接和硬链接

ln(link)命令的格式:ln [-s] [来源文件] [目的文件]。该命令常用的选项是-s,如果不加-s选项就是建立硬链接,加上-s选项就建立软链接(可以这样记忆,s->soft(柔软的)),例:

注:上例中的du命令用来计算文件或者目录的大小,-k表示以KB为单位,这里的4,就指的是4KB;ll命令等同于 ls -l。

一开始目录下面只有一个passwd文件,目录总大小为4KB,做了硬链接后,虽然两个文件的大小都为2364B,但目录的总大小没有变化。

所以我们先试着删除源文件,再来比较,例:

在上例中,删除源文件passwd后,文件大小依旧没有改变。说明硬链接文件并不会复制数据块额外占用磁盘空间。

再看硬链接的另外一个限制——不允许目录做硬链接。例:

软链接特性

首先建立一个测试目录456,然后复制/etc/passwd文件来做测试,再给它做一个软链接文件,例:

上例中,如果删除源文件,则不能读取软链接文件,而且使用命令ll查看时发现颜色也有变化。

说明目录不可以做硬链接,但可以做软链接,例:

原文地址:https://www.cnblogs.com/OctoptusLian/p/8973305.html

时间: 2024-08-03 13:50:12

Linux中的链接文件_软链接和硬链接的相关文章

Linux命令(一):软链接和硬链接

今天起,决定开始自学Linux命令及Shell脚本,并用Linux学习(命令行,Shell及其他知识点)这一系列记录下自己的心路历程,内容不分先后,只记录自己觉得有必要的,简单的就不记了! 第一个知识点:硬链接和软链接 一.链接的定义:在linux中,如果要维护同一份文件的两份或多份副本,除了保存多份单独的物理副本之外,还可以使用只保存一份物理副本和多份虚拟副本的方式,这种虚拟的副本就称之为链接.---<Linux命令行与脚本大全> 上面的解释来自书本,可以说是解释的很清楚了,按照我自己的理解

Linux文件的软链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. 1.1索引节点 索引节点是指在许多类Unix文件系统中的一种数据结构.每个索引节点保存了文件系统中的一个文件系统对象的元信息数据,但不包括数据内容或者文件名. inode包含文件的元信息,具体来说有以下内容: * 文件的字节数 * 文件拥有者的User ID * 文件的Group ID * 文件的读.写.执行权限 * 文件的时

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

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

linux笔记:链接命令,软链接和硬链接

命令名称:ln功能:生成链接文件命令所在目录:/bin/ln用法:ln [-s] 原文件 目标文件参数:-s 创建软链接(不写此参数则生成硬链接) 软链接:类似windows中的快捷方式.它只是一个链接,链接到它指向的文件.硬链接(最重要的原理就是:硬链接和原文件的i节点相同):硬链接文件相当于复制了一个和原文件一模一样的文件,文件权限.大小.内容都相同,并能够同步更新.当原文件丢失后,硬链接还能继续使用.硬链接不能跨分区.硬链接不能针对目录使用.

&lt;06&gt;linux的文本高级操作、软链接和硬链接及系统分区操作

1.diff --查看两个文件间不同地方,对比两个文件.#diff /etc/passwd /tmp/passwd 2.uniq --去除重复行 -c 统计重复的行数有几行 -i 忽略大小写 -d 只显示重复的行# uniq /tmp/passwd uniq -d /tmp/passwd | head -2 &> aa.txt 3.sort --排序7 -r 反向 -n 以数字来排序 -u 合并同类 -t 指定分隔符 -k 指字的列head /etc/passwd | sort -t ':'

文件的软链接、硬链接的区别

硬链接和软链接虽然都是链接文件,但是二者还是有很大区别的,主要区别在在于以下几点: 1)硬链接是创建一个指向文件的节点(inode),这样可以有效的防止文件的被错误的删除.因为在linux系统中,删除一个文件实质上是删除该文件节点的信息,从而切断了节点与文件之间的联系.当给一个文件创建了硬链接之后,删除文件时只会减少文件的链接数即节点数.当节点数为0 的时候才会真正的删除该文件.软连接类似于windows下的快捷方式,是一个完整的文件,链接文件和目标文件之间只有指向的关系.源文件删除后链接文件指

Linux软链接和硬链接文件

下面是Linux系统软件底层的存储结构,我们将从底层上来去解释Linux系统下的软硬连接文件 <一>: 解释(底层) 硬链接,其实从底层数据上来看, 硬链接其实就是增加了一个目录项.底层对应的inode table.数据区中的值是不变的, 也不会重新创建. 软链接, 其实从底层接上看, 软链接其实就是相当于重新创建了一个文件,, 无论是目录项,inode table,以及数据区都是重新重建的,而这个文件功能比较特殊, 它是用来指向另外一个文件的. <二>:命令的使用 硬链接命令:

linux中软链接和硬链接的区别与小结

ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名.而且,即使我们删除这个链接,也不会破坏原来的目录. 语法:ln [选项] 目标 [链接名] ln [选项] 目标 目录 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).

Linux中的软链接与硬链接

什么是链接文件? 1,硬链接:多个文件指向同一个inode的不同路径彼此成为硬链接. 2,软链接:(内存大小为字符串单位) Inode没有数据,只是储存了一个路径字符串,再找该路径寻文件 *硬链接的次数,小于等于1时,文件可以彻底删除 大于1时,文件不易删除 ln  [ -s  -v ] SRC  DEST -s  创建软链接 -v  显示创建过程 无选项表示创建硬链接 创建硬链接 Abc与创建链接后的DEF的inode号相同. 创建软链接 总结 硬链接: 1.只能对文件创建,不能应用于目录 2