`
yanghongxia9
  • 浏览: 115073 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux软链接和硬链接

 
阅读更多
简而言之:

软链接相当于windows中的快捷方式

硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外一处数据如果被删除了,不会影响到另一处的数据.


下面是详细的介绍:
存在两种不同类型的链接,软链接和硬链接。修改其中一个,硬连接指向的是节点(inode),而软连接指向的是路径(path)

软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。 链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。

命令格式:
代码: ln [-s] source_path target_path 硬链接文件
info ln 命令告诉您,硬链接是已存在文件的另一个名字,硬连接的命令是:
代码: ln -d existfile newfile //如果不加任何参数,默认情况下是硬链接.


硬链接文件

硬链接文件有两个限制:
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。

对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。修改其中一个,与其连接的文件同时被修
改.

代码:
$ cp /etc/httpd/conf/httpd.conf /usr/sam
$ ln httpd.conf httpd1.conf (硬链接)
$ ln -s httpd.conf httpd2.conf (软链接)
第一条为硬链接,第二条为软链接

代码:
$ ls -li //查看一个文件或目录的inode,要通过ls 命令的的 -i参数,inode值相同的文件,他们的关系是互为硬链接的关系

代码:
总用量 80
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd1.conf (连接数变为2)
1077668 lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf -> httpd.conf (类似于Win快捷方式)
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd.conf (连接数变为 2)

可以看到,使用ls -li,软连接只产生了10字节的快捷而已,硬连接却实实在在的的拷贝。最前面的inode硬链接和源文件是一样的
,而软链接不一样.对http1.conf进行编辑,可以发现httpd.conf也发生了一样的变化.

代码:
$ rm httpd.conf

现在删除链接的源文件,来比较不同之处

代码:
$ ls -l
总用量 44
drw-r--r-- 2 sam adm 4096 10月 30 20:14 file6
-rw-r--r-- 1 sam adm 34890 10月 31 00:57 httpd1.conf
lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf -> httpd.conf

发现,httpd2.conf实际已经不存在了,是断链,而httpd1.conf变也了普通文件.

============================================================================

详细示例分析(截图):



=============================================================================


一 链接文件
链接有两种方式,软链接和硬链接。

1 软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
  用ln -s 命令可以生成一个软连接,如下:
  [root@linux236 test]# ln -s source_file softlink_file
  在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。


2 硬链接文件
  info ln 命令告诉您,硬链接是已存在文件的另一个名字(A "hard link" is another name for an existing file),这多少有些令人困惑。硬连接的命令是
  ln -d existfile newfile
硬链接文件有两个限制
  1)、不允许给目录创建硬链接;
  2)、只有在同一文件系统中的文件之间才能创建链接。
  对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。
这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。




二 两者之间的区别
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。
在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。


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

而硬链接就没有上面的缺陷,你想怎么移就怎么移
分享到:
评论

相关推荐

    linux软链接 硬链接区别

    硬链接和软链接是 Linux 中两种不同的文件链接方式,硬链接通过索引节点来进行连接,而软链接是一种特殊的文件,包含的有另一文件的位置信息。了解硬链接和软链接的区别对 Linux 操作系统的使用和管理非常重要。

    Linux软连接和硬链接

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

    Linux操作系统的硬链接与软链接讲解

    在Linux操作系统中,文件管理是核心功能之一,而硬链接和软链接是文件系统中非常重要的概念,它们提供了文件共享和访问的灵活方式。本文主要介绍这两种链接的区别和使用。 首先,每个文件在Linux中都有一个唯一的...

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

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

    软链接和硬链接

    ### Linux中的软链接与硬链接详解 #### 一、引言 ...通过以上的实验和分析可以看出,硬链接和软链接在Linux中有着不同的应用场景和特点。理解它们的工作原理对于有效地管理和维护文件系统具有重要意义。

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

    Linux 硬链接和软链接深入理解 Linux 操作系统中有两种类型的链接:硬链接和软链接。了解硬链接和软链接的区别和使用场景对于 Linux 系统管理员和开发者非常重要。 硬链接(Hard Link) 硬链接是一种文件系统中...

    软链接与硬链接

    ### 软链接与硬链接 ...通过深入理解硬链接和软链接的差异,我们可以更加灵活地使用这些功能来提高Linux系统的操作效率和安全性。希望本文能够帮助大家告别对链接机制的模糊认识,真正掌握其核心原理。

    zyl-fun#blog#Linux硬链接和软链接1

    Linux硬链接和软链接参考:

    Linux系统中“软链接”和“硬链接”的区别.doc

    总的来说,硬链接和软链接都是Linux中处理文件链接的工具,它们提供了不同的灵活性和使用场景。硬链接适用于需要保持文件数据不因文件名改变而丢失的情况,而软链接则适合于需要动态指向文件位置,尤其是当文件路径...

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

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

    11.linux8.0-软硬链接.pdf

    本教程适用于Linux初学者,旨在详细解释软链接和硬链接的概念、特点以及如何创建这两种链接。 首先,软链接,也称为符号链接(Symbolic Link),其工作原理类似于Windows操作系统的快捷方式。但它们之间存在显著...

    Linux 软连接与硬链接.pdf

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

    windows下创建软链接.大家都知道win有快捷方式,linux有软链接,但是你知道win也能创建软链接吗?

    6. `junction`是一个第三方工具,由Mark Russinovich开发,用于创建和管理NTFS文件系统的软链接和硬链接。虽然`mklink`命令已经足够完成大部分任务,但`junction`工具提供了更高级的功能,如批量创建、查看和删除...

    Linux 硬链接与软链接

     Linux 中有两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接也称为符号链接(Symbolic Link)。  硬链接  硬链接其实已存在文件的另一个名字,链接与原来的文件并没有什么区别

    详解linux软连接和硬链接

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

    深入理解 Linux 链接:符号链接与硬链接的创建与管理

    Linux 提供了两种类型的链接:符号链接(也称为软链接)和硬链接。本文将详细介绍符号链接和硬链接的概念、创建方法、使用场景以及管理方式。 符号链接和硬链接是 Linux 文件系统中的重要特性,它们提供了灵活的文件...

    什么是Linux软链接和Linux硬链接

    Linux链接是文件系统中的一种机制,它允许一个文件有多个访问路径。主要分为两种类型:硬链接(Hard Link)和软链接(Symbolic Link),两者都有各自的...正确使用硬链接和软链接能帮助优化文件组织,提高工作效率。

    剖析Linux系统中硬链接与软链接的区别

    硬链接和软链接是Linux提供的一种特殊机制,允许用户以不同的方式访问同一文件内容。 **硬链接**: 硬链接实质上是文件系统的指针,指向同一个Inode。当创建一个硬链接时,系统不会为新链接分配新的Inode,而是增加...

Global site tag (gtag.js) - Google Analytics