Linux 硬链接 软连接

情景说明:

有时候在Linux下我们有一个大的工程跟绝对路径相关,现在又想通过eclipse查看源码和修改源码,那么问题来了:

1.如果我们把源码拷贝一份到eclipse工程里面,那么此时修改了某个文件之后还得手动复制到可以运行的原始工程目录下,这样操作很麻烦。

2.如果直接重新把源码部署在eclipse下面,势必要修改很多路径才能让这个工程在新的路径下正常运行

解决办法:创建软连接   ln  -s /xxxxxx/test  workspace/myproject

疑问:

什么是软链接?和硬链接有什么区别?

下面一段来自百度百科:

硬链接与软链接的区别

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。

说简单点

1.修改软连接或者硬链接都会导致源文件改变,可以达到同步的目的

2.删除软链接或者硬链接文件都不会删掉原始文件

3.删除源文件会导致软连接失效 ,而硬链接文件还是完整的

4.很重要的一点,可以建立目录的软连接但是不能建立硬链接,只能对文件建立硬链接,这也是上面对工程建立链接为什么选择软连接的原因

时间: 2024-08-08 06:38:46

Linux 硬链接 软连接的相关文章

linux硬链接和符号连接

linux硬链接与软链接1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.[硬连接]硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接.硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬

linux 硬链接与软连接

简                介 在存储设备上,文件或目录包含在一些数据块上.有关某个文件的信息包含在一个 inode 中,它记录了所有者.最后访问该文件的时间.文件的大小.它是否是目录,以及谁可以读取或写入它等信息.inode 编号也称为 文件序列号 ,该编号在特定文件系统内是唯一的.一个 目录条目 包含一个文件或目录的名称,以及用来存储该文件或目录的信息的 inode 的指针. 硬链接 是指向 inode 的目录条目,而 软链接 或 符号链接 是指向另一个目录条目的名称的 inode 的

Linux硬链接和软连接的区别与总结

图示软硬链接的区别 有关硬链接的总结 具有相同inode节点号的多个文件互为硬链接文件: 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除: 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除: 硬链接文件是文件的另一个入口: 可以通过给文件设置硬链接文件来防止重要文件被误删: 创建硬链接命令 ln 源文件 硬链接文件: 硬链接文件是普通文件,可以用rm删除: 对于静态文件(没有进程正在调用),当硬链接数为0时文件就被删除.注意:如果有进程正在调用,则无法删除或者即使文件名被删除

对linux硬链接和软链接理解

linux系统有有软链接和硬链接两种,所谓软链接类似于windows系统中的快捷方式,源文件如果被删除,软链接将失败.而硬链接则不同,即使源文件被删除,文件依旧存在,这是为什么呢?下面我就为大家简单说明一下其中的原因: 软链接: 这是我画的一张linux存储文件的简易图,软链接的连接道理是,在inode表中,存放指针位置并非是指针,而是存放着一个文件的元数据路径,通过路径找到文件元数据,再找到文件本身.例如:/root/1为原文件,/root/2为软链接文件 第一行为inode号,这两个文件拥有

Linux 硬链接与软链接 目录结构

理解 Linux 的硬链接与软链接 目录结构 /              根目录 ├── bin     存放用户二进制文件 ├── boot    存放内核引导配置文件 ├── dev     存放设备文件 ├── etc     存放系统配置文件 ├── home    用户主目录 ├── lib     动态共享库 ├── lost+found  文件系统恢复时的恢复文件 ├── media   可卸载存储介质挂载点 ├── mnt     文件系统临时挂载点 ├── opt     附

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

inode 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个 block. 文件数据都储存在"块"中,那么

Linux硬链接和软链接的区别

1.硬链接文件和原文件指向同样的数据,两者就像克隆一样,inode号也相同,当删除原 文件时, 硬链接文件仍然存在有效.但硬链接文件不同于文件的复制.应该说硬链接文件的产生只是原文件所 在目录文件的内容发生改变,原文件的数据并没有得到复制,而复制文件,磁盘上有两份数据.简单 说,硬链接就是一个类似于别名的概念.当原来的名字没有了,别名照样可以使用. 2.软连接和windows系统的快捷方式含义一样,软链接和原文件的inode不同,该文件的内容是指 向原文件的路径信息.软链接就好像是指针一样.而硬

Linux硬链接、软链接的创建及两者的区别

一.硬链接 链接数就是名字的数量: ln(link) 硬链接,多个相同的inode文件(同分区),多个硬链接文件的存在在硬盘上只占用一个文件的容量. 创建的硬链接是平等的,inode相同,删除某一个互不影响,其他文件仍然可以使用. 硬链接的本质:给一个文件创建多个名字. 创建多个硬链接,观察链接数的变化(+1),链接数是几就是有几个文件名. 同一分区中,同一个inode号必定是一个文件. 原始的文件 [[email protected] testdir]# ll -iman.txt 15 -rw

linux 硬链接与软链接

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. 硬连接指通过索引节点来进行连接,硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能.其原因如上所述,因为对应该目录的索引节点有一个以上的连接.只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放.也就是说,文件真正删除的条件是与之相关的所有硬