`
cocos
  • 浏览: 400376 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

linux软、硬链接的详细区别

阅读更多

硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。

    可以用:ln命令来建立硬链接。语法:

 

  1. ln [options] existingfile newfile  
  2. ln[options] existingfile-list directory   

  用法: 第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”directory”目录中,为 ”existingfile-list”中包含的所有文件创建一个同名的硬链接。常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。

  例子:

 

  1. $ ls –il  
  2. 13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1  
  3. 13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2  
  4. $ ln file2 file2hard  
  5. $ ls –il  
  6. 13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1  
  7. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2  
  8. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard  

注意在创建链接前,file1 显示的链接数目为1,创建链接后(1)file1和file1hard的链接数目都变为2;(2) file1和file1hard在inode号是一样的(3) file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具 有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除其中任何一 个,如rm file2 ,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。

 不足:

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。

 

 

软链接(符号链接):

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

       如果给ln命令加上- s选项,则建立软链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与 “目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原 “目标”的符号链接文件。 

   例子:

 

 

  1. $ ls -il  
  2. 13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1  
  3. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2  
  4. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard  
  5. $ln  –s file1 file1soft  
  6. $ls  -il  
  7. 13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1  
  8. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2  
  9. 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard  
  10. 13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1   

软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接 原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接 文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调, 因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的 大小。

总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。

缺点:

因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

分享到:
评论

相关推荐

    Linux 软连接与硬链接.pdf

    Linux 操作系统中有两种类型的连接:硬连接(Hard Link)和软连接(Symbolic Link)。这两种连接类型都可以实现文件的共享,但它们的实现机制和应用场景不同。 一、硬连接(Hard Link) 硬连接是一种文件系统级别...

    Linux软连接和硬链接

    在Linux操作系统中,...文章《Linux软连接和硬链接》以及相关资料提供了深入的探讨,包括它们的工作原理、创建方法以及使用示例。通过阅读这些材料,你可以更全面地了解如何在Linux环境中有效地利用这两种链接技术。

    linux软链接 硬链接区别

    Linux 软链接和硬链接的区别 Linux 链接概念是 Linux 操作系统中的一种文件系统机制,允许用户创建多个文件名指向同一个文件或目录。Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接...

    Linux软连接和硬链接-实际操作一遍你就会懂

    硬链接和软链接都是Linux环境下对文件建立额外引用的方式,但它们在实现机制和使用效果上有明显区别。通过实验可以发现,硬链接和原始文件共享同一个inode节点,而软链接则创建了一个新的inode节点,其内容为原文件...

    ln的软硬连接区别

    在深入探讨Linux中软链接与硬链接的区别之前,我们先简要回顾一下链接的基本概念。在计算机文件系统中,链接是一种使多个文件名指向同一实际数据块的技术,这对于提高资源利用效率、简化文件管理和增强数据安全性都...

    Linux实验三 软硬连接 压缩打包和解压

    "Linux 实验三 软硬连接 压缩打包和解压" 本实验主要涵盖 Linux 操作环境、文件和目录操作、find 命令的使用、文件链接和 tar 文件打包和压缩功能等知识点。 一、实验目的及要求 * 熟悉 Linux 操作环境 * 掌握 ...

    Linux教程-磁盘相关-分区-文件系统-挂载-软连接硬连接.zip

    涵盖了Linux系统管理的核心概念和技能。...此外,重点讲解了软连接和硬链接的区别,并提供了额外的补充材料以加深理解。适合Linux初学者和系统管理员提升对文件系统管理、磁盘空间优化和链接应用的实战能力。

    详解linux软连接和硬链接

    本篇文章详细介绍了linux软连接和硬链接,废话不多说,接着往下看把。 一 链接文件 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 ...

    Centos 7 硬连接和软连接.pdf

    本文将深入探讨两个关键概念:硬连接(Hard Links)和软连接(Symbolic Links),它们都是Linux系统中创建多条访问同一文件内容路径的方法。了解这两个概念对于日常的文件管理和系统维护至关重要。 首先,让我们来...

    硬连接和符号连接

    ### 硬连接和符号连接在Linux系统中的深入解析 #### 一、概述 在Linux系统中,连接(Links)是一种非常重要的文件管理机制。它允许用户通过不同的名称访问同一个文件,这对于文件共享和组织非常有用。根据实现方式...

    基于Linux系统的软PLC设计.pdf

    【基于Linux系统的软PLC设计】是针对传统PLC(可编程逻辑控制器)存在的兼容性差、封闭性、高成本等问题,提出的一种解决方案。软PLC,或称软逻辑,利用个人计算机(PC)的开放架构,实现了PLC的功能,包括开关量...

    Linux 指令篇:档案目录管理--ln 连接的详细介绍

    本文将详细介绍 ln 命令的使用方法和原理,以及软链接和硬链接的区别。 一、什么是链接? 在 Linux 系统中,链接是指一个文件或目录的别名,用户可以通过这个别名来访问原始文件或目录。链接有两种类型:硬链接和...

    需要了解的linux硬链接与软链接.docx

    理解 Linux 硬链接与软链接 在 Linux 系统中,存在两种特殊的“文件”:硬链接和软链接。它们都是文件系统中的重要组成部分,具有不同的特点和应用场景。 硬链接是通过文件系统的 inode 产生新档名,而不是产生新...

    linux 硬链接和软链接深入理解.docx

    了解硬链接和软链接的区别和使用场景对于 Linux 系统管理员和开发者非常重要。 硬链接(Hard Link) 硬链接是一种文件系统中的节点(inode),它是已存在文件的另一个名字。硬链接文件指向的是 inode,修改其中一...

    node-04-硬连接.ev4.rar

    在视频文件"node-04-硬连接.ev4.mp4"中,可能详细演示了如何在Node.js环境中创建、管理和使用硬连接,以及可能遇到的问题和解决策略。通过观看和学习这个视频,开发者可以更好地理解硬连接的概念,并学会在实际项目...

    Linux下高并发socket最大连接数所受的各种限制

    然而,当涉及到大量并发连接时,Linux系统会受到一系列限制,主要体现在以下几个方面: 1. 文件描述符限制: 每个Socket连接在Linux中都会被映射为一个文件描述符(file descriptor)。因此,系统对用户进程可打开...

    linux软、硬链接的区别

    总结软链接和硬链接的主要区别: 1. **创建方式**:软链接使用`ln -s`,硬链接直接用`ln`。 2. **链接类型**:软链接可以跨文件系统,硬链接则不行。 3. **I节点**:硬链接共享相同inode,软链接有自己的inode并...

    Linux修改TCP连接数.doc

    这里的 `*` 号表示修改所有用户的限制,`soft` 和 `hard` 分别指定软限制和硬限制,`10240` 则是要修改的新的限制值,即最大打开文件数。 网络端口限制 Linux 操作系统的网络端口限制也会影响 TCP 连接数。我们...

Global site tag (gtag.js) - Google Analytics