Linux 硬链接文件

硬链接文件

==只允许对文件硬链接 , 并且不能跨分区硬链接 , 因为不同的分区 , 可能存在相同的inode号. 不允许对目录硬链接 . ==

1. 硬链接和inode相关

在使用ls -i 查看文件的inode号

2. 创建硬链接

> 对/tmp/1.txt创建硬链接
[[email protected] ~]# ln /tmp/1.txt /tmp/1_hard.txt[[email protected] ~]# ln -s /tmp/1.txt  /tmp/1_soft.txt[[email protected] ~]# ls -lt /tmp/总用量 8lrwxrwxrwx. 1 root   root    10 6月   9 14:59 1_soft.txt -> /tmp/1.txt
-rw-r--r--. 1 root   root     0 6月   9 14:53 4.txt
-rw-r--r--. 1 root   root     0 6月   9 14:53 3.txt
-rw-r--r--. 2 root   root   390 6月   9 14:52 1_hard.txt
-rw-r--r--. 2 root   root   390 6月   9 14:52 1.txt

> 查看1.txt 和1_hard.txt的inode号
[[email protected] ~]# ls -it /tmp/16975321 1_soft.txt  33634053 34516975320 4.txt         822288 23416975319 3.txt       33634051 11116914255 1_hard.txt  50768750 22216914255 1.txt       16777285 allinlinux16890432 2.txt         822276 systemd-private-0f4b60569c224727b1ec0153a8598630-vmtoolsd.service-qCx2Tt16777289 user1.txt      14404 allin2  822290 666         17024017 tmp

2.1 解读

1.txt 和 1_hard.txt 互相成为对方的硬链接 , 不存在源文件和目标文件之说.

inode号是一个用来标记一个文件(目录), 并且记录该文件(目录)的所有信息的一串字符 , 包括文件中的内容也是保存在inode号里面的 .

1_hard.txt 和 1.txt 两个文件都指向了相同的inode , 说明两个文件的所有信息都是一致的 . 那么两个一模一样的文件 , 是否占用两份存储空间呢? 答案是否定的 , 都说是两个文件指向的是同一个inode , 也就是指向同一个内容 , 并不像copy文件一样 , 占用两份存储空间 .

可以这么理解硬链接 : 一个新的外壳(1_hard.txt) , 和原来的外壳(1.txt) 一样 ,都是指向着同一个inode对应的东西 . 实际上只有一份东西 , 两个外壳 , 所以存储空间只占用一份 .

把其中任意一个文件(外壳) , 删除掉 , 并不影响该inode号存储的内容信息 , 因为还有一个文件(外壳) 指向这个inode , 但是一个inode,至少保留一个外壳(文件指向) , 才能存在 .

时间: 2024-08-29 23:12:46

Linux 硬链接文件的相关文章

Linux下如何查看一个文件是否拥有软链接或硬链接文件?

问题1:我创建了一个硬链接文件,但是我不知道放在那里了,请问怎么办? 思路: 查找文件可以利用find命令. 硬链接的特性,不会跨文件系统,所以源文件在哪个文件系统中,就在那里找 硬链接文件和源文件具有相同的inode号,可以利用find的-inum参数和-samefile参数来查找. -inum参数表示按照inode号去查找,首先要查看文件的inode号 -samefile参数表示查找和某个文件相同的inode的文件,不用查看文件的inode号 [[email protected] oldbo

linux中软、硬链接文件比较

硬链接文件特征: 1.拥有相同的i节点和存储block块,可以看作是同一个文件: 2.可以通过i节点识别 3.不能跨分区 4.硬链接不能链接目录 5.修改任意文件另一个都变 6.删除源文件,硬链接能继续使用 语法: ln  源文件  目标文件 软链接文件特征: 1.类似于Windows快捷方式 2.软链接拥有自己的i节点和block块,但是数据块中只保存源文件的文件名和i节点号,没有实际的文件数据: 3.软链接的文件权限为rwxrwxrwx 4.修改任意文件,另一个都改变 5.删除原文件,软链接

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

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

linux硬链接和符号连接

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

Linux的链接文件-ln命令

Linux的链接文件 使用ln命令来创建链接文件(link) Linux链接分两种:硬链接(Hard Link),符号链接(Symbolic Link) 默认情况下,ln命令产生硬链接. [[email protected] lianxi]# ln  -s  xiaotong   tongtong    #符号链接才能为目录建立链接 源文件     目标文件(链接文件) [[email protected] lianxi]# cd tongtong/ [[email protected] ton

tar命令-vi编辑器-磁盘分区及格式化-软链接及硬链接文件

一.tar命令 1.将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) [[email protected]  /] #  cat  /etc/passwd  /etc/group  >  1.txt 2.将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) [[email protected]  /] #  cat  /etc/passwd  /etc/shadow  >>  2.txt 3.将/1.txt./2.txt两个文件打包为

Linux 硬链接和软链接的总结

描述: 链接--是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法.在Linux中分为软链接(hard link)和硬链接(soft link),其中软链接又称为符号链接(symbolic link). 索引节点:在linux系统中对文件的管理本质上是通过其索引节点进行管理的.从系统的角度来看,文件的索引节点(inode)是文件的唯一标识,它包含了文件系统处理文件所需要的全部信息.实际上存在两种类型的索引节点: 1,内核索引节点(in-core indoe):保存在内存中,在系统中

对linux硬链接和软链接理解

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

Linux 硬链接 软连接

情景说明: 有时候在Linux下我们有一个大的工程跟绝对路径相关,现在又想通过eclipse查看源码和修改源码,那么问题来了: 1.如果我们把源码拷贝一份到eclipse工程里面,那么此时修改了某个文件之后还得手动复制到可以运行的原始工程目录下,这样操作很麻烦. 2.如果直接重新把源码部署在eclipse下面,势必要修改很多路径才能让这个工程在新的路径下正常运行 解决办法:创建软连接   ln  -s /xxxxxx/test  workspace/myproject 疑问: 什么是软链接?和硬