【硬连接】

在Linux的文件系统中,保存在磁盘分区中的实际文件不管是什么类型系统都给它分配一个编号,称为索引节点号(Inode Index),这个索引节点用来标识这个文件,即这个索引节点就代表了这个文件。在Linux的同一文件系统中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件可以拥有多个路径名。因此源文件和硬链接文件是仅文件名不同的相同文件,创建文件的硬链接相当于为文件又起了一个新的文件名而已。这样用户就可以建立硬连接到重要文件上,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。就比如一个房间会有多把钥匙可以打开这个房间的门,只有当所有的钥匙都丢失或者失效的时候,门才会彻底不能打开。

1.删除硬链接文件或者删除源文件中的任意之一,文件实体并未被删除;

2.只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;

3.可以通过给文件设置硬链接文件来防止重要文件被误删;

4.Linux的 ln命令默认创建的是硬链接:ln [源文件]  [硬链接名称]

【软连接】

软链接就类似我们经常使用的Windows系统中的快捷方式,它实际上是一个特殊的文件,它里面存放的仅仅是源文件的位置信息,指向源文件的路径,而不能代表文件。

1.删除源文件,软链接依然存在,但无法访问源文件内容,即文件的路径还存在,但是源文件已经被删除,找不到文件了;

2.删除软连接,只是删除了一个路径位置(快捷方式),对源文件没有丝毫的影响;

3.Linux的 ln -s命令连创建软连接: ln  -s  [源文件]  [软连接名称]

彻底明白Linux硬链接和软链接的更多相关文章

  1. linux硬链接与软链接

    在linux操作系统中的文件数据除了实际的内容外,还会含有文件权限(rwx)与文件属性(owner,group,other等),文件系统通常会将这两部分的数据存放在不同的区块,文件权限与文件属性放置在 ...

  2. (转)Linux硬链接、软链接及inode详解

    inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读 ...

  3. 【转】 linux硬链接与软链接

    转自:http://www.cnblogs.com/yfanqiu/archive/2012/06/11/2545556.html Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看 ...

  4. Linux硬链接和软链接

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  5. linux 硬链接和软链接(转)

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【硬连接】硬连接指通过索引节点 ...

  6. Linux - 硬链接与软链接

    在 Linux 的文件系统中,磁盘块分成了 3 个部分.一部分称为数据区,用来存放文件内容.另一部分称为 inode 表,用来存放文件属性.第三部分称为超级块,用来存放文件系统本身的属性.文件的内容和 ...

  7. 最浅显、易懂的Linux 硬链接与软链接的理解

    正文: Linux上的文件可以这么理解:文件-->文件名.文件是一个Object,也就是磁盘上的二进制数据.一个文件可以有多个文件名,平时我们都是通过文件名访问文件Object. 这样,硬链接可 ...

  8. Linux 硬链接、软链接

    索引节点 inode(index node) 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata).用户数据,即文件数据块 ...

  9. linux硬链接和软链接的区别

    1.原理上: 硬链接(hard link):A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件 ...

随机推荐

  1. 【Java】静态与非静态

    文章目录 静态与非静态 static关键字 使用static修饰属性:静态变量(或类变量) 类变量与实例变量的内存解析 使用static修饰方法:静态方法 使用static的注意点 开发中,如何确定一 ...

  2. 2月1日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发

  3. 【解决了一个小问题】golang xorm中使用where id in (xxx),没办法使用参数替换

    代码中使用XORM来从数据库查询数据,有类似如下的代码: session.Where("id in (?)", strings,Join(arr, ",")) ...

  4. 【记录一个问题】linux + opencv + gpu视频解码,好不容易编译通过,运行又coredump了

    1.首先编译了opencv + cuda   编译选项中使用了以下关于cuvid库的内容: //"nvcuvid" libraryCUDA_nvcuvid_LIBRARY:FILE ...

  5. 【记录一个问题】opencl enqueueWriteBuffer()中,cl_bool blocking参数设置无效

    err = queue.enqueueWriteBuffer(in_buf, true, 0, bmp_size, bmp_data, NULL, &event); 以上代码中,第二个参数设置 ...

  6. vector自实现(一)

    vector.h: #ifndef __Vector__H__ #define __Vector__H__ typedef int Rank; #define DEFAULT_CAPACITY 3 t ...

  7. golang中math常见数据数学运算

    package main import ( "fmt" "math" ) func main() { fmt.Println(math.Abs(-19)) // ...

  8. centos7语言更改

    vim /etc/locale.conf 把 LANG="en_US.UTF-8" 改为 LANG="zh_CN.UTF-8"

  9. linux主机名称文件修改

    目录 一:linux主机名称查看与修改 1.查看自己主机名: 3.临时修改 4.永久修改 一:linux主机名称查看与修改 1.查看自己主机名: [root@localhost ~]# echo $H ...

  10. 字节跳动的一道python面试题

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 lst = ['hongkong','xiantyk','chinat','guangdong','z'] lst ...