索引节点
2017-10-20 本文已影响8人
Miracle001
数据 内容
元数据 meta data 属性
stat file 查看该文件的元数据(包括inode号)
ll -i
ls -i 查看inode号
索引节点
index node = inode
inode表:包含文件系统所有文件列表
一个节点包括
元数据
文件类型 权限、UID、GID
链接数(指向这个文件名路径名称个数)
该文件大小和不同时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
一般,inode表占用文件系统磁盘空间的1%
引用文件:inode号,文件名,二者之间的映射
节点编号
每个分区,独立分配,互不干扰
在分区中,有个数限制
节点编号在磁盘空间有限,可以被回收利用
分配节点编号,是在分区中
同一分区,inode编号是唯一的
不同分区,inode编号可以不同
目录是一个特殊的文件
ls -di / 查看根的编号
7.3 只要是/的分区,都是64开始
6.9 只要是/的分区,都是2开始
ls -di /boot /app /proc /sys
64 64 1 1
2 2 1 1
df -i 分区使用的节点编号情况
dd if=/dev/zero of=/boot/bigfile bs=1M count=1024 创建文件bigfile,每块1M,1024块
df -h 查看文件空间使用情况(size)
创建一个循环:
for i in {...};do touch file$i;echo file$i is created;done
echo file{...} | xargs touch/rm
echo * | xargs rm(?)
看执行情况:watch -n1 df -i 1秒执行1次这个命令
节点编号使用完,但是磁盘空间仍有剩余,虽然系统显示节点编号已经用完;
但是系统会预留一部分空间,仍可以创建节点号,一些小命令不能运行;
但是节点编号是可以耗尽的;
cp命令执行时,分配一个空间的inode号,在inode表中生成新条目,在目录中创建一个目录项(文件名称);
拷贝数据时,inode号与名称相关联,生产新文件;
删除循环(目录过多)
ls | xargs rm (ls列表——xargs——rm,一个一个删)
mv与inode
在同一个分区中,移动速度快,不同分区移动速度慢
创建:新的文件名 对应 新的目录项
删除:旧的文件名 对应 旧的目录项
不变:inode表(除了时间戳)或磁盘上的数据位置,数据没有被移动
rm与inode
链接数递减,释放inode号(可以被重新使用)
数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时,将被覆盖
被删除文件,空间会被标记,提示可以使用
文件粉碎工具
/var/log/messages 日志文件(文本文件)
shred --help
shred -uzvn10 messages(文件名)
u 删除
z 覆盖
v 显示过程
n 次数
ls -l 显示链接名称和引用的文件
ls -ila
一个inode编号 对应多个链接数(文件名)
硬链接(用的少)
ln A B 参考A建立B文件
二者的inode号一样
AB地位平等
多个名字
对应同一分区(文件系统)的一个物理文件
chown feng fiel_A 把A的所有者改为feng,则B的所有者也变为feng
每个目录的inode号一样
创建是,链接数递增
删除文件时,链接数递减
文件至少存在一个链接数,链接数为0,则该文件被删除
不能跨设备(分区)
不能针对目录(A不能为目录)
不依赖原始文件
应用
哪个名字用起来方便,就把这个名字放到易找到的地方
eg
ln /etc/sysconfig/network-script/if-eth0(网卡名称) /etc/eth0
cat /etc/eth0 = cat /etc/sysconfig/network-script/if-eth0
针对文件路径
别名时针对命令