`
dickyzhu
  • 浏览: 111781 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Symbolic link and hard link 的区别(linux)

阅读更多
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
--硬连接
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。



下面是一些例子:



keney@keney-laptop ~> touch f1       #创建一个测试文件f1
keney@keney-laptop ~> ln f1 f2        #创建f1的一个硬连接文件f2
keney@keney-laptop ~> ln -s f1 f3    #创建f1的一个符号连接文件f3
keney@keney-laptop ~> ls -li            # -i参数显示文件的inode节点信息


1284 -rw-r--r-- 2 keney keney    0 2009-05-24 10:44 f1
1284 -rw-r--r-- 2 keney keney    0 2009-05-24 10:44 f2
1340 lrwxrwxrwx 1 keney keney    2 2009-05-24 10:45 f3 -> f1
来源:(http://blog.sina.com.cn/s/blog_636556330100g5x2.html) - [学习]Symbolic link and hard link的区别(linux)_痴痴舞_新浪博客


从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为1284,然而符号连接文件的inode节点不同。



keney@keney-laptop ~> echo "I am f1 file" >> f1
keney@keney-laptop ~> cat f1
I am f1 file
keney@keney-laptop ~> cat f2
I am f1 file
keney@keney-laptop ~> cat f3
I am f1 file
keney@keney-laptop ~> rm -f f1
keney@keney-laptop ~> cat f2
I am f1 file
keney@keney-laptop ~> cat f3
cat: f3: No such file or directory

当删除原始文件f1后,硬连接 f2不受影响,但是符号连接f1文件无效

依此可见:
1).删除符号连接f3,对 f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
分享到:
评论

相关推荐

    SymlinkCreator.exe

    Symlink Creator simplifies the process of creating symbolic and hard links in Windows 7 and Windows 8 (likely Vista too). It is a GUI for the MKLINK command in Windows, which makes creating the links ...

    hardlink:使用硬链接复制文件并合并目录

    安装直接从资源库获取最新代码: $ pip install hardlink用法通过命令行脚本: $ hardlink -husage: hardlink [-h] [-d] [-f] [-q | -v] src dstCopy files and merge directories using hard links.positional ...

    2022年Linux基础测试试题及答案.docx

    * 文件类型: Regular file、Directory、Symbolic link、Hard link、FIFO、Socket、Block device、Character device * 文件权限:读、写、执行权限,chmod 命令 * 文件系统的挂载和卸载 二、Shell 编程 * Shell 的...

    linux软链接 硬链接区别

    Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 硬链接(Hard Link) 硬链接是通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么...

    详解Linux ln 命令

    Linux 中的文件分为 Hard Link 和 Symbolic Link 两种。Hard Link 文件又被称为硬链接文件、实体链接文件,Symbolic Link 文件则常被称为符号链接、软链接文件。 ln 命令用来在文件之间建立链接。在介绍 ln 命令前,...

    Linux Shell Scripting Cookbook

    Finding a symbolic link and its target 111 Enumerating file type statistics 113 Loopback files and mounting 115 Creating ISO files, Hybrid ISO 117 Finding difference between files, patching 120 head ...

    Linux 硬链接和软链接详细介绍

    根据链接的特性不同,可以将其分为两种类型:硬链接(Hard Link)和软链接(Symbolic Link,又称为符号链接)。本文将详细介绍这两种链接的特点、创建方法以及它们之间的区别。 #### 二、硬链接 **定义:** 硬链接...

    Linux下的cp命令详解

    * `-l`:进行硬式连结(hard link)的连结档建立,而非复制档案本身。 * `-p`:连同档案的属性一起复制过去,而非使用预设属性。 * `-r`:递归持续复制,用于目录的复制行为。 * `-s`:复制成为符号连结文件(symbolic ...

    Linux 软连接与硬链接.pdf

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

    linux文件系统结构分析

    Linux还支持软链接(symbolic link)和硬链接(hard link)。软链接类似于Windows的快捷方式,指向另一个文件的路径;而硬链接则是在文件系统的i节点表中添加一个额外的引用,两个链接都指向同一个文件。 了解了...

    linux-java

    例如,`File.renameTo()`方法可用于移动文件,而`File.createSymbolicLink()`或`File.createHardLink()`方法可以用来创建符号链接和硬链接。 `a2Answers.txt`文件可能是该程序的测试用例或者输出结果,它可能包含了...

    Linux 关机命令

    Linux 中的文件系统管理是非常重要的一部分,硬链接(hard link)和软链接(symbolic link)是其中两个重要的概念。今天,我们将详细地介绍硬链接和软链接的概念、使用方法和差异。 硬链接(Hard Link) 硬链接是...

    linux_filesystem.rar_linux_linux 文件系统_linux_filesystem

    6. **软链接 (Symbolic Link) 和硬链接 (Hard Link)** 软链接类似Windows的快捷方式,指向另一个文件的路径;硬链接则是文件的多个入口,它们共享相同的inode,修改其中一个链接会影响所有链接。 7. **文件系统...

    linux面试问题及回答方案.pdf

    软连接(Symbolic Link)和硬链接(Hard Link)都是 Linux 文件系统中的一种链接方式,但它们之间有着本质的区别。软连接是一种特殊的文件,它包含了指向其他文件的路径信息;硬链接则是一种文件的多个别名,它们都...

    仲恺农业工程学院《Linux》期末考试试卷(有一些答案).pdf

    13. **软链接与硬链接**:`ln`命令可以创建链接,软链接(symbolic link)类似于Windows的快捷方式,而硬链接(hard link)是指向相同inode的两个文件名。 14. **Linux发行版**:常见的Linux发行版有Ubuntu、Fedora...

    linux面试问题及回答方案.doc

    软连接(Symbolic Link)和硬连接(Hard Link)是 Linux 文件系统中两种不同类型的连接方式: * 软连接:软连接是一个指向原始文件的指针,它可以跨越文件系统的边界,但如果原始文件被删除,软连接将变得无效。 * ...

    详解linux软连接和硬链接

    Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【软连接】 另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有...

    Linux笔记.doc

    `ln`命令用于创建链接文件,软链接(symbolic link)类似Windows的快捷方式,硬链接(hard link)则相当于多个文件名指向同一个文件。 这只是Linux学习的冰山一角,更多复杂的操作如用户管理、网络配置、进程控制、...

    Linux 终端命令基础.pdf

    - 软链接(soft link)或符号链接(symbolic link):软链接则像一个快捷方式,它指向另一个文件的位置。删除原始文件后,软链接会失效。 打包和压缩是处理文件的常见操作,Linux中使用 `tar` 命令进行文件打包,...

Global site tag (gtag.js) - Google Analytics