一、链接文件介绍

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造成任何影响。

二、两者的区别

  • 硬链接记录的是目标的inode,软链接记录的是目标的路径。
  • 软链接就像是快捷方式,而硬链接就像是备份。
  • 软链接可以做跨分区的链接,而硬链接由于inode的缘故,只能在本分区中做链接。所以,软链接的使用频率要高很多。

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

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查看时发现颜色也有变化。

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

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

  1. Linux学习(一):软链接和硬链接

    今天起,决定开始自学Linux命令及Shell脚本,并用Linux学习(命令行,Shell及其他知识点)这一系列记录下自己的心路历程,内容不分先后,只记录自己觉得有必要的,简单的就不记了! 第一个知识 ...

  2. Linux文件的软链接和硬链接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link).还有一种被称为符号链接(Symbolic Link).默认情况下.ln命令产生硬链接. 1.1索引节点 索引节点是 ...

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

    linux 下的一个指令 ln 作用: 创建软链接或者硬链接 Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(use ...

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

    命令名称:ln功能:生成链接文件命令所在目录:/bin/ln用法:ln [-s] 原文件 目标文件参数:-s 创建软链接(不写此参数则生成硬链接) 软链接:类似windows中的快捷方式.它只是一个链 ...

  5. Linux链接命令及软链接、硬链接详解

    命令ln详解 命令ln,所在路径为: 可以看到,它的路径为:/usr/bin/ln,因此,它的执行权限是所有用户 命令的基本功能是创建链接文件(硬链接),例如:ln /etc/issue /tmp 选 ...

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

    ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...

  7. linux文件软链接与硬链接

    1.命令格式: ln [参数][源文件或目录][目标文件或目录] 软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间. 2.命令功能: Linux文件系统中,有所谓的链接(link),我们 ...

  8. Linux 中软链接和硬链接的使用

    Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link). 硬链接和软链接 硬链接 --- ln 要链接的文件 新硬链接名 软连接 --- l ...

  9. linux命令大全之ln命令详解(创建软链接和硬链接)

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接.硬链接.软链接相当于windows的快捷方式,下面是使用方法和示例   ln是linux中又一 ...

随机推荐

  1. HTTP响应状态码

    1XX:代表提示信息 2XX:代表成功信息 3XX:代表重定向 4XX:代表客户端错误信息 5XX:代表服务器错误 信息 500:500 错误是服务器内部错误 ,而且是程序上错误 为多,可能是你的用户 ...

  2. STL deque用法

    Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中 ...

  3. shell(7):四则运算

    shell 四则运算:expr,let,bc,(()), 1.expr的用法: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. 详细 ...

  4. 笔记本貌似好了(HP 450 卡)

    2013年9月份在苏宁上 买了个HP450,配置应该算还勉强,i5, 4G, 照理说一般LOL,DOTA,应该还可以.但是经常在打完一盘后,切出来,卡的要命,一直没有解决,昨天晚上虚拟机切出来,更是, ...

  5. 【C/C++】C语言复习笔记-17种小算法-解决实际问题

    判断日期为一年中的第几天(考虑闰年) /* * 计算该日在本年中是第几天,注意闰年问题 * 以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天 * 特殊情况,闰年且输入月份大于3时 ...

  6. Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接

    在文章 Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接(一) 中我们成功的为/feedback/feedback_stats/路径自定义了使用tem ...

  7. Orcale11g单机安装与卸载

    前言:本篇主要介绍Oracle11g企业版安装的准备工作,建议使用图形化界面安装,静默安装出现问题较多,初学者不好排查,本篇只给出关键步骤,最后介绍完全删除Orcale方法: Oracle Datab ...

  8. 判断URL文件是不是在于在。

    判断URL文件是不是在于在. private static bool UrlIsExist(string url) { System.Uri u = null; try { u = new Uri(u ...

  9. 【转】Java中JDK和JRE的区别是什么?它们的作用分别是什么?

    原文地址:http://blog.csdn.net/qq_33642117/article/details/52143824 JDK和JRE是Java开发和运行工具,其中JDK包含了JRE,但是JRE ...

  10. Java中的sun.misc.Unsafe包

    chronicle项目:https://github.com/peter-lawrey/Java-Chronicle 这个项目是利用mmap机制来实现高效的读写数据,号称每秒写入5到20百万条数据. ...