您的位置:首页 > 运维架构 > Linux

Linux学习 ——索引节点,软链接,硬链接

2016-07-30 16:10 246 查看
索引节点(index node)inode,存储文件的元数据信息的区域。 inode包含文件的元数据信息,具体内容有: 1、文件的字节数 2、文件拥有者的UID 3、文件的GID 4、文件的读、写、执行权限 5、文件的时间戳 6、文件的链接数 7、文件数据block的位置总之,除了文件名之外的所有文件信息都存在inode中。 inode也会消耗磁盘空间,所以OS会将硬盘分成两部分,一部分存放文件的数据,另一部分是inode区(inode table),存放inode所包含的信息。 通过命令 ls –i 可以查看文件的inode号码 目录文件在inode table中的存放就包括两部分:所包含文件的文件名和对应的inode号码。 inode号码的特殊作用: 1、有时文件名包含特殊字符,无法正常删除。这时直接删除inode节点,就能起到删除文件的作用。 2、移动文件或者重命名文件,只是改变文件名,不影响inode号码。 3、打开一个文件后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,系统无法从inode号码得知文件名。 cp rm mv对inode是否改变 cp命令:分配一个空闲的inode号码,在inode表中生成新条目在目录中创建一个目录项,将名称与inode号关联拷贝数据生成新的文件。 rm命令:文件的链接数递减,从而释放inode号可以被重用,将数据块放在空闲列表中,删除目录项,实际上数据不会马上被删除,但当另一个文件使用数据块时将会被覆盖。 mv命令:1如果mv命令的目标和源在相同的文件系统,mv命令用新的文件名创建对应新的目录项,删除旧目录条对应的旧文件名,不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动。2如果目标和源在一个不同的目录系统,mv相当于cp和rm。 硬链接:可以使用不同的文件名访问同样的内容,对文件内容修改会影响所有文件名,但是删除一个文件名不影响其他文件名的使用。 硬链接是几个文件名共同指向同一个inode节点。所以,除了文件名不同外,其他文件的元数据都是相同的。 硬链接的特性 1、文件具有相同的inode和data block 2、只能对已经存在的文件进行创建 3、不能交叉文件系统进行硬链接的创建 4、不能对目录进行创建,只能对文件创建、 5、删除一个硬链接文件不影响其他有相同inode号的文件 6、硬链接的创建会增加额外的记录项以引用文件 7、创建时连接数递增。
ln filename(linkname),创建硬链接硬链接相当于给一个数据块几个读取的进入方式,或者说给一个数据库几个入口。 目录文件的链接数 创建目录时,系统默认会自动创建 . 和 .. 目录项,前者的inode号码就是当前目录的inode号码;后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的“硬链接”。所以任何目录的“硬链接”数总是等于2加上他的子目录的总数。
软链接或者符号链接(soft link OR symbolic link) 文件A和文件B的inode号码不一样,但是文件A的内容是文件B的路径。读取A文件时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B,这时,文件A就称为文件B的软链接 软链接的特性 1、软链接有自己的文件属性及权限等 2、可对不存在的文件或者目录创建软链接 3、软链接可交叉文件系统,跨目录跨分区 4、软链接可对文件或者目录创建 5、创建软链接时,链接计数i_nlink不会增加 6、删除软链接并不影响被指向的文件,但若被指向的源文件被删除,则相关的软链接被称为死链接(即dangling link,若被指向的路径文件被重新创建,死链接可恢复为正常的软链接) 指向的是另一个文件的路径,其大小为指向的路径字符串的长度;不能增加或减少目标文件inode的引用计数 可通过 ln -s FILENAME(linkname)在定义软链接时,使用相对路径时,相对路径对应的是软链接文件的目录,例如:ln –s ../root/f1(源文件) /testdir/f1(软链接文件) 硬链接和软链接的区别: 1、硬链接的元属性与源文件相同,软链接可以有自己的文件属性和权限 2、软链接可对不存在文件或者目录创建,但是硬链接只能对已经存在的文件创建 3、硬链接不能跨分区,软链接可以分区和目录 4、创建硬链接时,文件的链接总数会增加,但是创建软链接,文件的链接总数不会增加 5、创建硬链接的源文件被删除,不会影响其他硬链接的使用,但是软链接的源文件被删除,所有的软链接都不能使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息