`
cocos
  • 浏览: 395317 次
  • 性别: 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 软连接与硬链接

    ln的软硬连接区别

    ln的软硬连接区别

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

    本文主要讲了一下关于Linux软连接和硬链接,希望对你的学习有所帮助。

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

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

    Linux软连接和硬链接

    NULL 博文链接:https://jaybin.iteye.com/blog/1171212

    详解linux软连接和硬链接

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

    Linux操作系统文件链接问题

    与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接,也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的...

    区分Linux硬链接与软链接

    在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link);另一种则是通过文件系统的 inode 连接来产生...

    Linux下创建和删除软、硬链接(ln)

    在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在...Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号...

    Linux硬链接与软链接原理及用法解析

    主要介绍了Linux硬链接与软链接原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    软链接与硬链接

    Linux中有两种类型的链接:软连接 硬链接。他们的本质区别是什么。让你从根本理解,告别云里雾里

    linux 连接与索引节点

    本文档包含了索引节点、硬链接、软连接以及连接的创建!

    +实验4 Linux的文件系统.docx

    通过实验,我们可以了解到文件硬链接和软连接的区别。硬链接是建立在文件系统中的物理链接,而软连接是建立在文件系统中的逻辑链接。 四、结论 本实验报告通过实验和分析,掌握了文件硬链接和软连接的实现方法,...

    Linux入门之ln命令创建软链接的绝对路径和相对路径详解(Ubuntu)

    Linux链接,可以分为硬链接与软链接;本文主要介绍软链接。(默认情况下,ln命令产生硬链接) 软链接文件类似于Windows的快捷方式,但实际上是一个特殊的文件。在软连接中,文件实际上是一个文本文件,其中包含另一...

    Linux系统连接的概念及删除原理

     在Linux文件系统中,多个文件名指向同一个索引节点,硬连接文件相当于文件的另外一个接口。  硬连接小结:  1、具有相同inode节点号的多个文件是互为硬连接文件。  2、删除硬连接文件或者删除源文件任意一...

    linux教程——很使用的那种

    建立硬连接实际上只是增加了一个目录项,但并没有复制文件数据区,原文件的数据区由两个文件共享。这一方面能够节约大量磁盘空间,同时可以保证两个文件能同步更新。 ls -i或--inode 显示文件和目录的inode编号。 ...

    Linux课堂笔记.pdf

    一、操作系统概述 1、 操作系统 2、 不同应用利于的主流操作系统二、系统...2.8.4 软硬连接 2.8.5 cut命令 2.8.6 sort命令 2.8.7 wc命令 2.8.8 uniq命令 2.8.9 tee命令 2.8.10 tr命令 2.8.11 split命令 2.8.12 awk命令

    基于网络的嵌入式Linux系统交叉开发环境搭建.pdf

    由于嵌入式系统的软硬件环境复杂多变,因此它的操作系统应有很好的可移植性、可配置性和可裁剪性,以便能灵活地适应不同的软硬性环境。因此,一种能使开发过程变得更简便、高效的交互式开发环境被提出来。 3. 交叉...

Global site tag (gtag.js) - Google Analytics