为了能解释清楚 inode 我们先简单了解一下文件系统:
超级块: 存放文件系统本身的结构信息
inode: 存放文件属性, 如文件大小, 所有者, 最近修改时间等
数据区: 存放文件内容
事实上, 真正找到磁盘上文件的并不是文件名, 而是 inode
inode
(1) 查看每一个目录下每个文件的 inode 号
- [a@localhost ~]$ ls -i
- 270062 \ 269732 Desktop 269733 Downloads 269738 Pictures 269735 Public 269796 test.txt
- 260610 bb 269736 Documents 269737 Music 401249 process 269734 Templates 269739 Videos
- [a@localhost ~]$
(2) 可以使用 stat 指令查看对应文件的 inode
- [a@localhost ~]$ stat test.txt
- File: `test.txt'
- Size: 50 Blocks: 8 IO Block: 4096 regular file
- Device: 802h/2050d Inode: 269796 Links: 1
- Access: (0664/-rw-rw-r--) Uid: ( 500/ a) Gid: ( 500/ a)
- Access: 2018-03-07 15:51:25.028622769 -0500
- Modify: 2018-03-07 15:51:25.029622766 -0500
- Change: 2018-03-07 15:51:25.029622766 -0500
- [a@localhost ~]$
相关名词:
Size 文件所占的字节数
Block 文件数据的所占的块
Links 硬连接数
Uid 文件拥有者
Gid 文件的所属用户组
Access 最后访问时间
Modify 文件内容最后修改时间
Change 属性最后修改时间
(3) 查看硬盘上 inode 总数和适用情况
- [a@localhost ~]$ df -i
- Filesystem Inodes IUsed IFree IUse% Mounted on
- /dev/sda2 1164592 98397 1066195 9% /
- tmpfs 125551 5 125546 1% /dev/shm
- /dev/sda1 76912 38 76874 1% /boot
(4) 查看硬盘上块的总数和使用情况
- [a@localhost ~]$ df -l
- Filesystem 1K-blocks Used Available Use% Mounted on
- /dev/sda2 18339256 2742812 14664860 16% /
- tmpfs 502204 80 502124 1% /dev/shm
- /dev/sda1 297485 34634 247491 13% /boot
硬链接
每个文件可以建立一个或者多个硬链接, 可以达到防误删的功能, 当删除了源文件时, 可以通过硬链接文件来访问文件数据
指令 ln 用来创建硬链接文件:
- [a@localhost ~]$ touch abc
- [a@localhost ~]$ ln abc def
- [a@localhost ~]$ ls -li abc def
- 269646 -rw-rw-r--. 2 a a 0 Mar 16 16:52 abc
- 269646 -rw-rw-r--. 2 a a 0 Mar 16 16:52 def
- [a@localhost ~]$
abc 和 def 的链接状态完全相同, 它们被称为指向文件的硬链接 inode 263466 的硬链接数为 2.
删除文件: 在目录中将对应的记录删除; 将硬链接数 - 1, 如果为 0. 则将对应的磁盘释放
引用计数
真正找到磁盘上文件的并不是文件名, 而是 inode 可以让多个文件名对应同一个 inode, 是一种引用计数的运用
- [a@localhost ~]$ stat file
- File: `file'
- Size: 4096 Blocks: 8 IO Block: 4096 directory
- Device: 802h/2050d Inode: 269747 Links: 2
- Access: (0777/drwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
- Access: 2018-01-21 16:37:00.221270279 -0500
- Modify: 2018-01-21 16:18:04.719270233 -0500
- Change: 2018-01-21 16:18:04.719270233 -0500
- [a@localhost ~]$
Links 的初始值是 1, 之前我们为它创建了一个硬链接, 所以加 1 此时值为 2, 当删除一个硬链接文件, 它的值就会减 1.
硬链接的限制:
(1) 不能跨越文件系统
(2) 不允许普通用户对目录做硬链接
软链接
软连接又叫做符号连接, 类似于 Windows 系统的快捷方式
与硬链接不同, 它没有引用计数, 软链接是通过名字引用另外一个文件
创建软连接: 用 ln 指令的 - s 选项
- [a@localhost ~]$ ln -s file filetest
- [a@localhost ~]$ ll
- lrwxrwxrwx. 1 a a 4 Mar 16 17:41 filetest -> file
删除软链接:
[a@localhost ~]$ rm -rf filetest
软链接的特点:
(1) 可以对目录创建软链接
(2) 可以跨文件系统
(3) 可以对不存在的文件创建软链接
来源: http://blog.csdn.net/zjx624bjh/article/details/79595596