基础IO[三]
close关闭之后文件内部没有数据,
stdout和stderr 他们一起重定向,只会重定向号文件描述符,因为一号和二号描述符虽然都是sydout,但是并不一样,而是相当于一个显示器被打开了2次。
分别重定向到2个文件的写法和直接写道一个文件的写法。
文件是在磁盘中的,磁盘里面有一个个扇区,文件存储在其中,需要对每一个分区进行管理【机械硬盘知识】分区是由一个个标准块组成的
super block文件属性信息,块使用了多少,还有多少没用,剩下多大等。
虽然磁盘的基本单位是扇区(512字节)但是操作系统和磁盘IO交互的时候是4kb.
为什么不以512字节为单位?
太小多次IO会导致效率降低,而且如果万一那天磁盘大小改变呢?os源代码要不要改?硬件和软件解耦
Datablock多个4kb大小 的集合,报错的都是特定文件的内容。而不是属性。
Inode TAble :Inode是一个大小为128kb字节空间保存对应文件属性,该快组内,所有文件属性集合,需要唯一标识性,都要有一个inode编号一般而言一个inode一个inode编号
那么如果一个文件特别大呢?datablock不仅可以存放数据,也可以存放其他块的索引。间接索引的方式,找到文件。
linux文件里inode里面没有文件名,那么是如何找到文件的呢?
一个目录下,可以保存很多文件,没有重复的。根据Linux下一切皆文件,目录是文件,有inode有自己的datablock。保存着文件名和Inode和目录的映射关系。互为Key值。
软链接:
ln -s -s代表软连接
ln -s testlik.txt -> soft.link
运行结果如下,soft.link是被创建出来的软链接,指向testlink.txt。软连接的文件内容是指向文件的对应路径。
有独立的inode,属于单独的文件,如同windows下的快捷方式。
硬链接
去掉ln 直接是ln命令,但是没有inode,不是独立的文件,不是真正的创建文件。那么他干了什么
?就是在指定目录下,文件名和指向内容inode建立映射关系。
有什么用呢?
接触链接
unlink xxx.link
软硬链接有什么区别
软件有无独立的inode是区分他们的最大差别
默认创建的文件夹为什么inode是2硬链接;
自己目录名inode
目录内部 .和inode有映射关系。文件夹的隐藏文件.代表当前文件夹..代表上级目录