标签:使用命令 rm命令 linu 路径名 文件路径 文件 一个 复制 依赖关系
inode 详解在Linux中,我们经常会做一些关于数据的操作(备份、传输、压缩等)或是要在后台持续的运行一些程序。由于,工作的数据量很大或者工作要持续很长的时间,我们就必须保证这个终端的启动,一旦终端关闭了,它所运行的进程也会关闭,我们所做的工作就可能前功尽弃。但是,即使我们不主动的关闭终端,终端有的时候也会应为一些原因(网络、锁屏等)而中断,导致我们的工作进度清零。
inode是用来存储文件元信息的区域。中文译名叫做“索引节点”。
简单来说,inode 指示了一个文件的基本信息,如inode编号、修改时间、文件的位置等,就如同一本书的目录,会直接告诉你想看的章节是在第几页。不同的是,书是以页为单位的,而 linux 文件存取是以“块”为单位的。
操作系统在读取硬盘的时候,会一次性读取一个“块”(一个“块”的大小往往是4kb,包含了连续8个扇区,每个扇区存储512个字节)。而inode就告诉了文件位于哪个“块”,于是系统就会从这个“块”开始读取内容,我们就可以看到这个文件的内容。
每个文件都有对应的inode,存储着关于这个文件的基本信息。linux 系统不使用文件名,而使用 inode 号来识别文件。对于使用者,我们是通过文件名打开的文件;但是对于系统内部,是分为三步的:
inode 包含了文件的以下基本信息:
查看inode内容可以使用命令:stat -i 和 ls -i
要理解文件的操作对 inode 的影响,先要理解目录的原理。目录对外表现是一个容器,存放着子文件和子目录,实际上在系统内部,目录本身也是一个文件,目录文件的内容即是该目录下的文件名与 inode 号的映射表(即一个个的目录项)。因此,linux 访问一个文件时,要先查询到上一级目录,根据目录内容查找到文件对应的 inode 号,然后读取对应的 block。
目标文件名指向inode记录
(inode记录没有影响(除时间戳),数据位置没有变化)
一般情况下,文件名和 inode 号是一一对应,但是也有可能多个文件名指向同一个 inode 号,即硬链接。硬链接可以实现用不同的文件名访问同一个文件。
软链接也可以通过不同的文件名访问同一块数据,但是与硬链接不同的是,两个文件名的 inode 是不一样的。那如何访问同一块区域呢?比如文件 A 是文件 B 的软连接,那么文件 A 的内容存放的是文件 B 的路径名(可以通过这个找到文件 B 的目录项)。因此访问 A 时,会读取文件 B 的路径,进而读取文件 B 的内容。这样,对外表现来看,文件 A 和文件 B 的内容就相同了。类似于 windows 系统下的快捷方式。
创建软链接语法:
ln -s [source file] [new file]
在生产环境中,创建软链接一般选择相对路径,这样在数据整体迁移中,软链接保持相对关系不受根目录影响。特殊需要强调的是:源文件路径是相对于新链接文件的相对路径,不是相对当前工作目录的相对路径
例如:
本文参考文章
作者:HappyRocking
来源:CSDN
原文:https://blog.csdn.net/HappyRocking/article/details/80671997
版权声明:本文为博主原创文章,转载请附上博文链接!
标签:使用命令 rm命令 linu 路径名 文件路径 文件 一个 复制 依赖关系
原文地址:https://blog.51cto.com/14322522/2395294