常用命令
ls -R

chmod -R

du

find

文件系统的三个区域:
超级块    i-节点表      数据区

a 文件系统的第一个区域称为超级块,这个块存放文件系统本身的结构信息。
b i-节点表,每个文件的属性被记录在称为i-节点的结构中,i-节点存储在i-节点表中。表中的i-节点都是通过位置来标识的。标识为2的i-节点位于文件系统i-节点表的第3个位置。
c 数据区


创建文件的过程:
文件有内容和属性,内核将文件内容存放在数据区,文件属性存放在i-节点,文件名存放在目录。

ls -1ia//查看当前目录中的 i-节点号和文件名
-1  每行显示一个文件
-i 显示i-节点号

2 一个固定大小的i-节点如何存储较长的分配列表?

i-节点包含一个大小为13的链表,链表中的前10项存储数据块的编号,链表的第11项是间接块,间接的存储分配列表

3 目录包含的是文件的引用,每个引用被称为链接。文件的内容存储在数据块,文件的属性被记录在一个被成为i-节点的结构中,i-节点的编号和文件名存储在目录中。

与目录树相关的命令和系统调用
#include<sys/stat.h>
#include<sys/types.h>

int result=mkdir(char *pathname,mode_t mode)  

int result=rmdir(const char *path);

int result=unlink(const char *path);从一个目录文件中删除一个记录

int result=link(const char *orig,const char *new);生成一个i-节点的链接

int result=rename(const char *from,const char *to);

int result=chdir(const char *path);

wc -l 对文件计算行数

diff 文件1 文件2 比较文件的内容

4
不允许给目录创建硬链接。
不可以在不同文件系统的文件间建立链接。

软链接与硬链接的区别:
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是完全不同的。
区别:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,BBB大小是95B,而BBBsoft是3B。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
 posted on 2009-09-02 14:52  清水湾  阅读(638)  评论(0编辑  收藏  举报