inode表结构
每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)
node 表中有很多条记录组成,第一条记录对应的存放了一个文 件的元数据信息
第一个node表记录对应的保存了以下信息:
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 链接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
目录
目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系
- 文件引用一个是 inode号
- 人是通过文件名来引用一个文件
- 一个目录是目录下的文件名和文件inode号之间的映射
inode表和目录
CP和inode
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
rm和inode
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲的列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode
如果mv命令的目标和源在相同文件系统
用新的文件名创建新的目录项
删除旧目录条目对应的旧文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动
如果src和dst不在同一个的文件系统上,mv相当于cp和rm
删除大文件
[root@centos7 dir1]# echo abc > a
[root@centos7 dir1]# cat a
abc
[root@centos7 dir1]# cat /dev/null > a
[root@centos7 dir1]# cat a
软链接和硬链接的区别
硬链接本质上就是给一个文件取一个新的名称,实质是同一个文件
ln filename [linkname]
软链接指向另一个文件,类似快捷方式,软链接文件和原文件本质上不是同一个文件
ln -s filename [linkname]
[root@centos7 ~]# touch b
[root@centos7 ~]# ll
总用量 4
-rw-r--r--. 1 root root 0 10月 18 09:26 a
-rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 10月 18 09:31 b
[root@centos7 ~]# ln a c
[root@centos7 ~]# ll
总用量 4
-rw-r--r--. 2 root root 0 10月 18 09:26 a
-rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 10月 18 09:31 b
-rw-r--r--. 2 root root 0 10月 18 09:26 c
[root@centos7 ~]# ln -s b d
[root@centos7 ~]# ll
总用量 4
-rw-r--r--. 2 root root 0 10月 18 09:26 a
-rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 10月 18 09:31 b
-rw-r--r--. 2 root root 0 10月 18 09:26 c
lrwxrwxrwx. 1 root root 1 10月 18 09:31 d -> b
[root@centos7 ~]#