首页 > 系统相关 >10_Linux连接档概念

10_Linux连接档概念

时间:2024-03-09 22:03:19浏览次数:27  
标签:test1 10 test2 文件 ln Linux inode 连接

Linux连接档概念

1.Linux 下的连接档种类

一个是类似于win 电脑的快捷方式,我们称为软连接,一种是通过文件系统的inode 连接来产生的,类似于win 电脑的复制,但是不产生新的文件,我们称为硬连接。

2.什么是inode?

inode 是用来存放文件信息的,每个文件都会占用一个inode,并且这个inode 号是唯一的,文件的内容都是inode 来指定的,而不是文件名,当系统要访问文件时,inode 就会被复制到内存,从而实现文件的快速访问,使用ls -i 命令则可以看到inode 号-i 参数为打印文件的inode 号

image-20240309213140634

image-20240309213143973

3.什么是硬连接

硬连接只是一个新的链接到某个inode 号码的记录而已。这个链接指向inode,系统并不给他重新分配inode。
可以用ln 命令来建立硬连接。
格式:ln 源文件目标文件
常用参数-f 无论目标文件是否存在都要创建连接。
举例:

image-20240309213149636在例子中我们可以发现test1.c 和test2.c 他们的inode 号码都是44564692。因为inode 号一样,所有这个俩个文件的权限和属性也是一模一样的,也是test1.c 和test2.c 是俩个完全一样的文件。

image-20240309213153717连接数也由1 变成了2,这个代表的是有多少个档名链接到了这个inode 号。

image-20240309213226024我们在创建一个硬连接。使用ln test1.c tset3.c 命令后,则会发现我们这个连接数从2 变成了3

image-20240309213230129

4.使用硬连接的优缺点是什么?

优点:
第一个方便,虽然类似于win 的复制,但是通常并不占用实际空间。而且不管我们是修改test1.c 或者是修改test2.c 还是test3.c,只要修改一个,我们的文件就会被同时修改,因为他们的inode 号都是相同的。
举例:
我们修改test3.c 的内容为如下图所示:

image-20240309213236055

test1.c 和test2.c 的内容也被修改成了nihao,如下图所示:

image-20240309213240516第二是安全,防止误删除,我们删除test1.c 或者是test2.c 或test3.c 任意一个,我们还是可以通过剩下的连接来访问文件。除非都删掉。
举例:
我们删掉test1.c。但是test2.c 或test3.c 还是可以访到“nihao”这个内容。

image-20240309213246879缺点:
只能在同一个文件系统才可以创建硬连接(因为不同的文件系统管理方式不同),并且目录之间不能创建硬连接。(太复杂,现在还不支持)

5.什么是软连接

这个就比较好理解了,类似win 上的快捷方式。
可以用ln 命令来建立软连接。
格式:ln -s 源文件目标文件(必须加上-s 参数,使用ln 如果不加任何参数的话,那么就是Hard Link,而且源文件要用绝对路径)-s 为创建一个软连接

image-20240309213259118举例:

image-20240309213302720上图中我们可以发现test1.c 和test2.c 的inode 号是不一样的,所以这个俩个文件是完全独立的,总之软连接就是创立了一个新的文件,当访问这个连接文件的时候,系统就会发现他是一个连接文件,然后读取连接文件找到真正要访问的文件。
因为类似于win 的快捷方式,我们删掉源文件test2.c ,test1 就不能打开了,如下图所示:
红色背景代表无效。

image-20240309213307194软连接虽然没有硬链接安全,但是限制少,所以使用范围还是很广泛的延申内容:
ubuntu 系统中各个文件的颜色含义:
蓝色:文件夹,ls -l 或ll 时可以看到权限部分的第1 个字母是d
红色:压缩文件
绿色:可执行文件
白色:文本文件
红色闪烁:错误的符号链接
淡蓝色:符号链接
黄色:设备文件
灰色:其它文件

标签:test1,10,test2,文件,ln,Linux,inode,连接
From: https://www.cnblogs.com/mzx233/p/18063436

相关文章

  • 09_Linux权限管理
    Linux权限管理1.为什么要管理Linux权限?很好管理每个用户。控制每个用户对系统权限的访问初次创建的用户要比普通用户有更多的权限。Ubuntu的用户分为3类:1:root(超级用户)2:系统初次创建的用户,比如topeet3:安装完系统之后创建的用户。用户的信息全部被保存在/etc/passwd文件......
  • 08_Linux帮助手册讲解
    Linux帮助手册讲解1.Linux帮助手册使用man命令打开,使用手册一共有九页。1.可执行的程序或者shell命令2.系统调用3.库调用4.设备和特殊文件的帮助,通常在/dev下面5.配置文件的帮助6.游戏的帮助7.杂项的帮助8.超级用户可以执行的系统命令的帮助9.内核相关的。2.使用m......
  • 07_Linux常用命令第二部分
    Linux常用命令第二部分1.mkdir命令功能:创建一个新的文件夹mkdirtest创建一个名为test的文件夹注意:linux下是区分大小写的同一级目录下不能创建文件夹名字一样的文件使用-p参数可以创建多级目录2.rmdir功能:删除一个非空目录rmdirtest删除test文件夹注意:这个命......
  • 关于 Linux 中模拟鼠标
    问题的背景是我想用自动化脚本来玩StardewValley的小游戏,刷钱,但是遇到了一系列问题,这里记录我的一些历程。pyautogui/pydirectinputpyautogui是我第一个考虑的方案。虽然可以正常的移动鼠标,点击,但是游戏内却没有点击事件。搜索发现一般游戏在windows下使用的是directX,所......
  • 使用AT+MQTT指令连接华为云实现数据上传
    1准备工作硬件设备模块:ESP-01-S固件烧录工具:ESP8266下载器串口调试工具:VOFA+参考文章:stm32+AT指令+ESP8266接入华为云物联网平台并完成属性上报与下发的命令处理2固件更新2.1为什么要重新安装固件由于ESP-01-S模块出厂没有集成MQTT指令,故需要自己下载固件包,详见官网固......
  • 7-10 英文单词排序(string类型的长度表示方法)
    7-10英文单词排序分数15作者张泳单位浙大城市学院本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。输入格式:输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的......
  • 仅需10秒!ChatGPT轻松画出UML用例图,我却苦战10分钟。
    当我们写技术文档时,一张系统用例图,平时要花费10分钟才完成,而ChatGPT绘图过程只用了10秒钟,基本可以达到同样的水平,通过ChatGPT可以显著提高画流程图的效率。什么是用例图用例图是统一建模语言(UML)的一部分,用于描述系统的功能以及与之交互的外部实体(如人、系统或设备)。它是一种图......
  • window10家庭版 安装Hyper-V
    1.新建文件,命名为Hyper-V.cmd,将以下命令复制到文件中保存,使用管理员权限运行pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.mum>hyper-v.txtfor/f%%iin('findstr/i.hyper-v.txt2^>nul')dodism/online/norestart/add-package:"%Sy......
  • Linux/macOS 查看网络接口
    Linux$nmclidevicestatusDEVICETYPESTATECONNECTIONenp0s5ethernetconnectedWiredconnection1docker0bridgeconnected(externally)docker0loloopbackunmanaged......
  • 【软件安装】pytorch安装(windows10,pip版)
    前提必须先安装cuda与cudnn,教程:cuda与cudnn部署安装同时确认你的CUDA版本,nvidia-smi:确认版本是12.4,继续往下走安装pytorch前往官网,并且往下滑动,直到你看见INSTALLPYTORCH:PyTorch看左下角的PreviousversionsofPyTorch,点进去:这里显示最新的是v2.2.0版本,咱就下这个,按设......