unix下的文件系统只有一个(/)根目录。其他所有目录都以根目录的子目录形式出现。Solaris创建分片,在分片上构建文件系统,然后每个文件系统 都可以通过挂接以根目录的子目录形式出现。例如:/etc、/usr等。通过对应的子目录即可对分片进行操作。
Solaris OS 中的文件一般由文件名和I节点组成,大部分文件都使用数据块(data-block)存储。I节点(inode,information node)。
inode用来记录文件的信息,可以分为两部分:第一部分inode记录文件的信息如Owen、权限、大小等;第二部分记录该文件的数据块指针,指向特定的数据块。如果是常规文件数据块存放的是文件的内容,若是目录数据块存放的内容是广域目录中的文件(或子目录)和inode之间的链接。
(如单片机 中的地址指针,设备文件只保存了指向设备的数字编号)inode是一个纯数字编号,在创建一个新的文件系统时,会创建一个全新的完整的inode list.
设备文件:
设备文件不是保存数据的,它仅提供到设备的访问,因此设备文件不使用数据块。
以上输出中每一行的第一个字母的含义:
-:常规文件
d:目录
l:符号链接
b:块设备文件
c:字符设备文件,也叫裸设备文件
解释:
块设备(block device)是一种具有一定结构的随机存取设备,对这种设备的读写时按块进行的,他使用缓存区暂时存放数据,待时机成熟后,从缓存区一次性写入设备后一次性读出。如磁盘和文件系统。
例如:硬盘的驱动可能要求读取磁盘上任意块的内容,然后又转去读取别的块的内容。且读取的块在磁盘上的位置不一定连续所以访问时随机的。而且不是以数据流的方式访问,显然是块设备。常见的块设备包括cd-rom、磁盘、硬盘、U盘等。对于usf来说逻辑块的大小为8kbytes。可以使用mkfs -m命令来查看块设备的逻辑块大小。
字符设备(character device)顺序存取的数据流设备,对这种设备的读写是按字符进行的,且这些字符连续形成一个数据流、不具备缓存区。所以对这种设备的读写是实时的。如terminal、磁带机、键盘等设备。字符设备(裸设备)以磁盘的最小可寻址单元(sector,512bytes)为单位进行I/O输入输出操作。
在ls-l中输出的第二行中99为该设备的主设备号(major device number),0为此设备号(minor device number)
主设备号指定了设备驱动器要访问的设备,此设备号则指定了设备驱动其索要控制的特定单元。在设备文件的的inode中保存了major和minor数值建立了设备文件和他控制的设备之间的联系。(也就是说该inode直接特定的设备)。
链接
链接分为硬链接(hard link)和软连接(soft link)
软链接(符号链接,symbolic link)类似于Windows系统中的快捷方式。创建方法:ln -s /tmp/1 /2
注意/2是一个软链接,它的inode中存放着指向到/tmp/1文件的指针。
在时候用ls -l命令查看软链接时,他的前缀显示为 -。当删除源文件,软连接也失效。
硬链接(hard link)硬链接主要的作用是为一个文件设置多个有效目录,保证重要文件不被误删。只有当所有路径全部被删除后,文件的数据块和目录才会被释放,文件被删除。(包括源文件和硬链接)
硬链接的inode指向的是存放数据的数据块。一个普通文件最少拥有一个硬链接,一个目录最少拥有两个硬链接(目录名和.),.表示自己使用和自己目录一样的inode。
notice:注意只有在同一文件系统中才能创建硬链接,且目录不能为目录创建硬链接。
创建硬链接的命令是:
ln soucepath destionalpath
使用ls -li查看的内容如上,可以看见在权限后面会显示一个数字,该数字表示硬链接的个数,也就是指向该数据块的文件的个数。
目录的硬链接:
对于目录来说虽然不能手动的创建硬链接,但是Solaris默认情况下会为新的空目录创建两个硬链接(目录名和.),其中.代表自己使用和自己目录一样的inode。..表示上一级目录,使用上级目录的inode,每多一个子目录,目录的硬链接就多一个。(目录的硬链接个数由其目录中的子目录来计算,只统计一级子目录)
ls常用参数:
-l:显示向信息
-a:显示全部信息
-L:显示软链接的目标目录信息
-i:显示inode
-R:显示包括继承了子目录的信息
-d:directory_name 只显示目录名称和信息,不显示目录内部信息(目录内的字目录及文件信息)。