LInux软硬链接概念

一、LInux软硬链接概念

Linux链接分为符号链接(Symbolic Link)也叫软链接和硬链接(Hard Link)两种,默认情况下,ln命令会产生硬链接。

二、软连接

    1.创建软连接命令:ln -s sourcefile newfile

    2.简介:

软链接又叫做符号链接,软链接文件有类似于Wondows的快捷方式。它实际上是一个特殊的文件。

    3.连接件特点:

3.1? 可以链接任何文件或者目录,还可以链接不同文件系统的文件或者目

3.2? 要链接文件时,新文件是必须存在的,当源文件不存在时,建立的链接是一个空链接。空链接文件也可以操作,而且对空链接操作,例如,emptyfile是空链接,对emptyfile进行vim emptyflie,并写入一些字符时保存时,系统就会自动生成一个emptyfile对应的源文件。空链接就会变成软链接。

3.3?? 软链接相当于windows系统的快捷方式,windows系统下改变快捷方式,例如对快捷方式重命名等不会改变源文件的内容。而在linux系统下,改变newfile时,sourcefile也会同步改变。当然,改变sourcefile也会引发newfile的同步改变。

3.4??删除newfile时,不会对sourcefile产生影响,但是删除sourcefile时,newfile就会变成一个空链接。当然,再对newfile写入内容,系统又会生成newfile对应的源文件。

[[email protected] data]#ln -s f1 f2
[[email protected] data]#echo "I am f1 file">>f1
[[email protected] data]#
[[email protected] data]#cat f1
I am f1 file
[[email protected] data]#cat f2
I am f1 file

[[email protected] data]#rm -rf f2
[[email protected] data]#cat f1
I am f1 file
[[email protected] data]#cat f2
cat: f2: No such file or directory
[[email protected] data]#

[[email protected] data]#ln -s f1 f2
[[email protected] data]#cat f2
I am f1 file

[[email protected] data]#rm -rf f1
[[email protected] data]#cat f2
cat: f2: No such file or directory
[[email protected] data]#

当删除原始文件f1时,软连接文件无效。

    4.不足:

因为链接文件包含原文件的路径信息,所以当原文件从一个目录下移动到另一个目录下,再访问链接文件,系统就找不到了。

三、硬链接

1.创建硬链接的命令:ln sourcefile newfile

2.简介

    由于Linux下的文件是通过索引节点来识别文件的,硬链接可以认为是一个指针,是一个指向文件索引节点的指针。系统并部位它重新分配inode,每添加一个硬链接,文件的链接数就加一。说到这里,就不得不提一下inodeinode是Unix内部用于描述文件特性的数据结构。我们通常称inode为文件索引节点Index Node(信息节点)。inode含有文件系统关于文件的大部分重要信息。在Unix创建文件时,同时会创建大量的inode节点。通常,文件系统磁盘空间中约百分之一的空间分配给了inode表。inode指的是数据结构,而索引编号实际上是inode的标识编号。inode表包含一份清单。列出了对应文件系统的所有文件inode编号,当用户搜索或者访问一个文件时,Unix系统通过inode表查找到相对应的inode编号。在找到inode编号后,相应的命令才能访问该inode,并对它进行访问等操作。

3.特点

3.1? sourcefile和newfile相互影响,同步执行。

3.2? 建立硬链接后,sourcefile和newfile的连接数都为2,当删除sourcefile文件后newfile文件不受影响,只是连接数减一,从链接文件变为普通文件。因为删除一个文件,实际上是删除inode信息。当链接数为0时,才会彻底删除该文件。也就是说,文件真正删除的条件是与之相关的所有硬链接文件都被删除。

3.3? 硬链接不占用磁盘空间。

3.4? 硬链接只作用于文件。

[[email protected] data]#touch f1
[[email protected] data]#ln f1 f2
[[email protected] data]#ls -li
total 0
67 -rw-r--r--. 2 root root 0 Sep 29 15:31 f1
67 -rw-r--r--. 2 root root 0 Sep 29 15:31 f2
[[email protected] data]#ln -s f1 f3
[[email protected] data]#ls -li
total 0
67 -rw-r--r--. 2 root root 0 Sep 29 15:31 f1
67 -rw-r--r--. 2 root root 0 Sep 29 15:31 f2
68 lrwxrwxrwx. 1 root root 2 Sep 29 15:31 f3 -> f1
[[email protected] data]#echo "I am f1 file">>f1
[[email protected] data]#cat f1
I am f1 file
[[email protected] data]#cat f2
I am f1 file
[[email protected] data]#cat f3
I am f1 file
[[email protected] data]#rm -rf f3
[[email protected] data]#cat f1
I am f1 file
[[email protected] data]#cat f2
I am f1 file
[[email protected] data]#cat f3
cat: f3: No such file or directory
[[email protected] data]#

4.不足

4.1? 不允许给目录创建硬链接。

4.2? 只有在同一文件系统中的文件才能创建硬链接。

    为什么不允许给目录创建硬链接?

原因:系统在遍历文件夹的时候,假设可以创建目录的硬链接,则因为系统不能识别出该硬链接是链接还是文件本身。这样,系统就会无限的递归下去。而软链接可以被系统识别,就不会出现这样的问题。

    为什么只有在同一文件系统下的文件才能创建硬链接?

原因:不同的文件系统可能具有相同的inode编号,假设可以在A系统创建B系统文件的硬链接,这是,假设B系统的文件B1的硬链接文件为A系统的A1。那么,理论上,他们具有相同的inode编号,如111,但是,假设此时A系统中本来就可能存在inode号为111的文件。假设此时想访问inode号为111的文件,那么久不知道到底是访问A系统的文件还是访问B系统的文件。

四、 总结:

软硬链接的相同点与区别:

相同点:

1.链接文件newfile在创建前都必须为空。

2.newfile和sourcefile的改变读会影响对方。

不同点:

1.软链接可以跨文件系统,硬链接不可以。

2.软链接可以对目录链接。

3.软链接可以对一个不存在的文件进行链接。

4. 硬链接通过inode访问文件,软链接不直接使用inode作为文件指针,而是使用文件路径名作为指针。

原文地址:http://blog.51cto.com/yy1109lll/2296515

时间: 2024-10-11 17:29:12

LInux软硬链接概念的相关文章

Linux软硬链接

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

linux软硬链接区别

(1)硬链接  一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名.但是,Unix/Linux系统允许,多个文件名指向同一个 inode号码.这意味着,可以用不同的文件名访问同样的内容:对文件内容进行修改,会影响到所有文件名:但是,删除一个文件名,不影响另一个文件名的访 问.这种情况就被称为"硬链接"(hard link). 硬链接必须在一个分区,两个文件互为源,命硬,删掉一个还有一个.多个文件共享一个inode.是为了节省ino

LINUX软硬链接小结

硬链接(Hard Link) 创建:ln 源文件 硬链接文件 我们称具有相同iNode节点的不同文件,互称为硬链接文件.相当于一个文件实体的不同入口. 删除一个硬链接文件,不影响其它硬链接文件的存在.修改其中一个硬链接文件,其余硬链接文件都同步修改,因为具有相同iNode,实际上文件实体是一个. 软链接(Soft Link或者Symbolic Link) 创建:ln -s 源文件 软链接文件 软链接文件有自己的iNode,是跟所指文件不同类型的文件. 相当于源文件的快捷方式. 实际上是个文本文件

Linux 软硬链接详解

软链接 软链接: 类似于windows的快捷方式,->文本文件,但是包含了真实文件的地址               源文件删除,则软连接也删除               软链接可以放在任何文件系统               目录可以创建软连接 --> 和源文件不同的文件,因为软连接目录可以放在任何地方 命令:[[email protected] omc]# ln -s ftl/ ftl.soft (第一个参数表示源文件,inittab.soft表示快捷方式) 查看:[[email pro

Linux 软硬链接的区别

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

linux学习笔记——安装虚拟机、设备挂载、软硬链接

################安装虚拟机########################### 1.命令行安装虚拟机[[email protected] ~]# virt-install \        ###安装虚拟机> --name westos \                ###安装虚拟机的名字> --ram 1024 \                    ###内存> --location ftp://172.25.254.250/pub/rhel6.5 \    

Linux中的软硬链接

说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block. 首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位: Linux中的文件的文件名.文件属性和文件的数据是分开存储的.文件名存放在目录项(dentry)中,文件的属性存放在iNode中,而文件的内容,即文件的实际数据存放在block中,而目录只有iNode没有block.一般而言这个iNode的大小为128B,iNode中的内容大致如下:  1.文件的字节数: 2.文件拥有

Linux课程笔记 软硬链接

1. 软硬链接的介绍和实践 1.1链接的概念 在linux系统中,链接分为硬链接和软链接.在默认不带参数的情况下,执行ln命令创建的是硬链接. 链接是指通过索引节点来进行链接.在linux系统中,多个文件名指向同一个索引节点是正常且允许的,这种是硬链接.硬链接的作用之一是允许一个文件有多个有效路径防止误删除源数据. 文件系统中,只要文件的索引节点还有一个以上的链接,只删除其中一个链接并不影响索引节点和其他的链接(即数据实体并未删除).只有当最后一个链接被删除,此时如果有新数据要存储到硬盘时,被删

Linux中的 inode以及 软硬链接分析

    一. inode 是什么?(索引节点)              理解inode 需要知道文件存储,文件是存储在硬盘上的,操作系统读取硬盘的时候会连续读取多个扇区(硬盘的最小存储单元),即一次性读取一个块(文件存取的最小单位).所以文件数据都存储在块中,便需要一个地方储存文件的管理信息.例如文件的创建者.文件的创建日期.文件的大小等等.这种储存文件管理信息的区域就叫做inode(索引节点).            二.  inode的内容            1.文件的字节数: