标签:节点 容量 元数据 重用 list 身份证 add 不能 不可
我们知道Linux有一个思想“一切都是一个文件(包括硬件)”,这是一篇关于基础文件管理的心得
文件系统与目录结构
Linux文件的特点:
元数据:metadata (文件属性:类型,权限,从属关系,大小,时间,等等)
数据:data (文件本身内容)
4.文件名最长255个字节
5.文件的划分
-:普通文件 d: 目录文件 b: 块设备
c: 字符设备 l: 符号链接文件 p: 管道文件pipe
s: 套接字文件socket
切换至上一级目录:cd ..
切换至当前用户主目录:cd (回到根目录)
切换至以前的工作目录:cd -(只能在两个目录间切换)
ls (list): 列出文件名 ,若不指定文件名或目录名,则列出当前 目录,默认自动展开列出一级子目录的文件名
ls -a 显示所有文件,包含隐藏文件
ls -l = (ll) 列出文件的类型、权限、链接数、owner、group、大小,时间,名字
ls -d 列出目录但不展目录
ls -R 目录递归通过(不举例子了,我曹列个没完没了)
stat 文件名 查看文件的状态,我们主要关注的是三个时间戳::
access time:访问时间,atime,读取文件内容(访问时改变)
modify time: 修改时间, mtime,改变文件内容(文件本身内容改变时改变)
change time: 改变时间, ctime,元数据发生改变(文件元数据改变时改变)
Touch 文件名 若文件不存在,则创建一个空文件,若文件存在则更新时间戳
mkdir 目录名
mkdir -p a/b/c/d/e 连续创建多级目录
cp 目标文件 目的文件(若目的文件不存在则创建改文件,但只能创建一级文件,两级不行:
cp -r /etc /app/123/234/456 会报错)
cp -r或-R 递归复制,如源包含目录,一定要递归才能复制
cp -d 当复制的源是一个软链接时,复制出的文件,也是软链接,若不加d,则复制完整的源文件
cp -p 保留复制文件的 权限,owner,group,时间 戳不变
cp -v 显示复制详细信息
rm –rf * 强制删除所有文件
rm –rf / 慎用
在当前文件系统中,文件分为两部分: 块和节点 ,块内存储文件的数据,节点存储文件的元数据
一个节点(inode)是在一个表项,包含有关文件的信息(元数据),包括:
1.文件类型,权限,UID,GID
2.链接数(指向这个文件名路径名称个数)
3.该文件的大小和不同的时间戳
4.指向磁盘上文件的数据块指针
5.有关文件的其他数据
对于一个文件来说有且只有一个节点(inode节点就好比文件的身份证)
Inode只有126B(现在好像大了是256B)而一个节点大小是2B,inode是如何存储文件的呢
Inode分为 12 直接指针,一个间接指针, 一个双重间块接指针,一个三重间接块指针
间接指针指用一个块去存储Inode的指针
我们假设一个block(块)大小是1K,那么我们存储文件的在最大容量是:
(12*1K +256*1k+256*256*1K+256*256*256*1K)/1024/1024=16G
如果你这个磁盘存储的文件比较大可以扩大block容量提升性能(毕竟你的指针就少了)
我们要明白文件的名字是不可能唯一的,但文间的inode号是唯一的
在block中是不存在子文件这一说法的,所有文件都是平级关系,目录的inode中存储目录的元数据,目录的block存储的是子文件的名字和子文件的inode号
文件引用一个是inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
1.如果mv命令的目标和源在相同的文件系统,作为mv命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!?
2.如果目标和源在一个不同的文件系统,mv相当于cp和rm
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
我们做个试验
1.我们创建两个目录dir1,dir2,以及一个文件a并向其输入内容hi
2.在dir1中创建一个a的硬链接b,dir2创建一个a的硬链接b,并查看ls –iRl
3.删除a(此时b,c内容不变)
4.修改dir1中的b(此时c中的内容也发生改变)还是那句话一个文件只有一个inode号只要inode号不变无论他有多少名字都是同一个文件,就好比人可以有多个名字,但只有一个身份证号
用一个形象的例子来表示硬链接,a要给c打电话,但他没有c的电话,b有,b告诉a电话号码,以后a再去联系c就不需要b了
我们亦可以了解到
1.硬链接一旦创建成功,则没有源和目的文件关系
2.硬链接必须在相同的分区下
3.硬链接不能对目录创建
4.目录的硬链接数包含目录自身的名字,以及 . 和子目录里的 ..
同样我们也举个例子
1在dir1 创建b的软连接b.txt通过相对路径
2在dir1 创建b的软连接b1.txt通过绝对路径,并查看
3删除b(b.txt,b1.txt都不可用),并查看
4重新创建一个b并输入hello,并查看(都可用)
这就好a要给c打电话,但他没有c的电话,b有,b用自己手机把c号码拨通后给了a,以后a再去联系c依旧需要b
1.软连接就相当于windos下快捷方式
2.软链接可以跨分区
3.可以相对路径 ,也可以绝对路径,在创建相对路径时,推荐进入到最终目录,再创建
4.删除源,软链接不可用,同时软连接不关心源是什么,只要有源就行
5.软连接存储的是地址
6.软连接相当于创建一个新文件
标签:节点 容量 元数据 重用 list 身份证 add 不能 不可
原文地址:https://www.cnblogs.com/angge/p/9308942.html