硬链接与软链接(二)

Linux中的软链接与硬链接 Linux中的软链接与硬链接一、inode的概念二、软链接三、硬链接硬链接的两个限制四、软链接与硬链接的区别 一、inode的概念 此部分参考:https://blog.csdn.net/ML908/article/details/103374494 1、一个文件的数据包括元信息和实际数据,元信息包括以下内容: 文件的字节数 文件拥有者的User ID 文件的Group ID 文件的读、写、执行权限 文件的时间戳等 2、这些元信息保存在inode(索引节点)中,每个文件都必须占用一个inode 阅读详情

声明:本文转载自http://www.xxlinux.com/linux/article/accidence/technique/20061121/5907.html;谢谢原创者分享。

 

首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

一、硬链接

硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。语法:

ln [options] existingfile newfile
ln[options] existingfile-list directory</CCID_CODE />
</CCID_NOBR />

用法: 第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。

下面举一些例子:

$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2
$ ln file2 file2hard
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard</CCID_CODE />
</CCID_NOBR />

注意在创建链接前,file1 显示的链接数目为1,创建链接后(1)file1和file1hard的链接数目都变为2;(2) file1和file1hard在inode号是一样的(3) file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,

链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。当前目录逻辑结构:(不好意思图没有显示出来)。

还可以在不同目录,但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/longcheng/dir1中,下面的命令,在/home/longcheng中建立file2的硬链接。

ln file2 /home/longcheng/file2hard</CCID_CODE />
</CCID_NOBR />

下面的程序,是将dir1目录中所有文件,在目录dir2中建立硬链接

$mkdir dir2
$ln /home/longcheng/dir1/* /home/longcheng/dir2</CCID_CODE />
</CCID_NOBR />

如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。虽然很多树上说root用户可以创建,但是笔者在学习过程中发现即使是root用户也不能创建,我的系统是Redhat,内核2.4、2.6都试过,在其他系统中不知道是不是可以。
 

二、软链接(符号链接)

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

建立软链接,只要在ln后面加上选项 –s,下面举个例子

$ ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
$ln –s file1 file1soft
$ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1</CCID_CODE />
</CCID_NOBR />

从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。

总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。

在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。

当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习。

保姆级教程:用NodeMediaClient在Android实现RTMP拉流播放(附避坑指南) 本文提供了一份详尽的Android平台RTMP拉流播放实现与深度调优指南。重点介绍了如何使用NodeMediaClient库进行集成,并针对视频卡顿、花屏等常见问题,从渲染引擎选择(SurfaceView与TextureView)、解码策略、缓冲区优化到高级网络自适应等方面提供了实战解决方案与避坑技巧。 阅读详情

相关推荐

案例分析|一篇文章带你看懂养鸡场智慧管理系统

养鸡场智慧管理系统是为了满足现代化养鸡业对精细化管理的需求而设计的一款专业软件。随着科技的发展和农业产业的升级,传统的手工记录和管理方式已无法满足高效、准确和实时的数据跟踪需求。本软件旨在通过集成各种功能模块,帮助养鸡场主实现从鸡苗孵化、饲养管理、饲料控制到销售结算等全链条的智能化操作。该系统的核心目标是提升养鸡场的运营效率和盈利能力,通过自动化数据处理,减少人工误差,节省时间和精力。例如,孵化报表和记录模块可以帮助管理者实时监控孵化过程,及时调整策略;

muyu2980的专栏 930

linux中软连接

面试被问到这个问题都蒙了。这个以前有看过但是没有动手练过。所以今天还是动手试一下。软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。简单来说,就是windows里面的快捷方式。

weixin_44421186的博客 5万+

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

Linux基础-软链接和硬链接

符号链接也称为软链接,是将一个路径名链接到一个文件。软链接文件是一种特别类型的文件,它们是一个文本文件,文件内部只包含了被链接文件的路径名。命令:ln常用参数解释:-s:创建软连接;不加参数默认创建硬链接。ln -s 源文件绝对路径 软链接路径文件创建硬链接只能创建在同一磁盘或磁盘分区下,不能创建在不同的磁盘或磁盘分区。硬链接不占磁盘空间,且目录不能创建硬链接。

2201_75935630的博客 1万+

【学习K230-例程46】GT6700-UVC摄像头

UVC模块提供了USB摄像头的检测、配置和图像采集功能,支持单摄像头操作。本实验通过开发板上的USB接口连接摄像头,将摄像头捕获到的画面显示在显示设备上。print(f"模式{i}: {mode.width}x{mode.height} {mode.format}@{mode.fps}fps")print(f"摄像头检测: {‘已连接’ if plugin else ‘未连接’}, 设备信息: {devinfo}")检测系统是否连接了USB摄像头(当前仅支持单个摄像头检测)。获取摄像头支持的所有视频模式。

GilgameshJSS的博客 806

从零抓包分析AVDTP:用Wireshark解密蓝牙音频传输全流程

本文详细介绍了如何使用Wireshark抓包工具分析AVDTP协议,解密蓝牙音频传输的全流程。从实验环境搭建到信令交互解析,再到媒体流传输深度分析,逐步揭示蓝牙音频传输的技术本质,帮助开发者深入理解AVDTP协议的工作机制。

sun99的博客 204

linux的链接方式

熟练掌握linux当中硬链接和软链接的区别

weixin_66078202的博客 3055

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6389

【Linux】—— 详解软硬链接

详解详解软硬链接

m0_56069910的博客 9547

Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

电商秒杀系统框架回顾项目简介外部依赖框架回顾项目要点项目中存在的问题小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以跟着视频练习一下这个项目; 项目简介 通过SpringBoot快速搭建的前后端分离的电商基础秒杀项目。项目通过应用领域驱动型的分层模型设计方式去完成:用户otp注册、登陆、查看、商品列表、进入商品详情以及倒计时秒...

ghw15221836342的博客 3720

富芮坤fr8008gp 240X280 lvgl项目启动

fr8008gp_240X280_lvgl项目启动

cheng___yi的博客 1757

Linux——软链接

Linux中软链接的使用

Ina的博客 8576

详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

本文给大家带来是利用RT-DETR模训练自己的数据集,RT-DETR是一种新提出的目标检测模型,它利用的自注意力机制来处理图像数据。不同于YOLO通过连续的卷积层直接对图像区域进行分析,RT-DETR采用Transformer架构中的自注意力机制,这允许模型更有效地理解图像中不同部分之间的关系。这种方法使得RT-DETR在处理图像中的复杂场景和多对象环境时,能够展现出更高的准确性和效率。此外,RT-DETR在保持高精度的同时,也针对实时处理进行了优化,使其适合需要快速响应的应用场景。

Snu77的博客 6万+

理解 Linux 的硬链接与软链接(二)

清单 5. 查找有相同 inode 号的文件 # df -i --print-type Filesystem Type Inodes IUsed IFree IUse% Mounted on /dev/sda7 ext4 3147760 283483 2864277 10% / udev devtmpfs

我不会编程,但不是完全不会,我会一点点 586

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

linux系统怎么设置硬链接,二、Linux系统硬链接和软链接详细介绍与实践

链接的概念在linux系统中,链接可分为两种:一种被称为硬链接(Hard LinK),另一种被称为软链接或符号链接(Symbolic Link)。在默认不带参数的情况下,执行ln命令创建的链接是硬链接。硬链接硬链接是指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index)或者Index。在Li...

weixin_29356815的博客 1058

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Linux】文件操作篇(二):实战理解硬链接与软链接

本文通过动手实验深入解析了Linux硬链接与软链接的核心机制:硬链接是文件的多个等价别名,共享inode与数据块;而软链接则是独立的路径快捷方式,拥有自己的inode,两者在跨文件系统、目录链接和删除行为上存在根本差异。

D2005_10_25的博客 978

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Linux】基础 IO(二)—— 软链接与硬链接

软硬链接及其区别

志之所趋,无远弗届,穷山距海,不能限也 379

二、Linux系统硬链接和软链接详细介绍与实践

链接的概念 在linux系统中,链接可分为两种:一种被称为硬链接(Hard LinK),另一种被称为软链接或符号链接(Symbolic Link)。在默认不带参数的情况下,执行ln命令创建的链接是硬链接。 硬链接 硬链接是指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(In...

weixin_30394251的博客 171

Linux文件系统简单操作-查看磁盘容量(df、du命令)、软链接和硬链接

1、查看磁盘与目录的容量 df命令 命令 说明 df 列出所有文件系统,查看大小 df -h 以人们便于阅读的方式显示,大小显示为G,M,K df -h /etc 将 /etc 底下的可用的磁盘容量以易读的容量格式显示 df -ih 将目前各个 部分当中可用的 inode 数量列出 **du命令** 命令 说明 du [-ahskm] 文件或目录名称 列出目录下所有文件的大小 du 统计所有文件的总容量,并显示各个目录容量,不显示文件容量 du -

readyone的博客 1465

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同。 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个...

weixin_34167819的博客 130

什么是软链接、硬链接

什么是软链接、硬链接 一.软链接 ①软链接的概念: 类同与windos的快捷方式,给文件创建一个快速的访问路径,它依赖于原文件,与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。当原文件出现问题后,该链接不可用。 (1)可以应用于目录 (2)可以跨文件系统 (3)不会增加被链接文件的链接次数 (4)大小为指定的绝对路径所包含的字符总数 (5)有自己的inode号 (6)权限无关紧要 ②如何实现软链接: 命令 ln -s 下面我创建了一个file1的文件,并指定它软链接到 /mnt路径下的fi

King config 3万+

软链接和硬链接区别

一、软链接:又被叫为符号链接,它包含了到原文件的路径信息。 创建软链接:ln -s file link 二、硬链接:是对原文件起了一个别名。 创建硬链接:ln file link 1.本质: 硬链接:本质是同一个文件 软链接:本质不是同一个文件 2.跨设备 硬链接:不支持 软链接:支持 3.inode 硬链接:相同 软链接:不同 4.链接数 硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少 软链接:创建或删除,链接数不会变化 5.文件夹 硬链接:不支持 软链接

SXX021002的博客 1万+

Linux的软链接与硬链接

介绍了Linux系统下软链接和硬链接的功能和基本概念,从原理上剖析了二者的区别

mrqiuwen的博客 4174

Linux 软链接 与 硬链接 的区别

Linux 软链接 与 硬链接 的区别 1、概念 2、区别 3、应用场景 4、创建

weixin_51123079的博客 6809

硬链接与软链接

硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。 链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。 通过文件名打开文件 若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名(见 图 2.hard link 就是 file 的一个别名,他们有共同的 inode)。硬链接可由命令 link 或 ln 创建。如下是对文件 oldfile 创建硬链接

Piepis的博客 3217

LINUX 硬链接与软链接的区别

对于一个文件来说,有唯一的索引接点(inode)与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。    连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows

kenson的专栏 6万+
上一篇: 硬链接与软链接(一)
下一篇: shell
弱水三千_fllik
博客等级 码龄15年 48粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值