Unit 15 The Linux filesystem in-depth
上一节概述了文件系统的安全设置,本节就深入解释文件系统得结构(其实也不会很深入)。RHEL5主要使用的ext3的文件系统,比起ext2据说是增加了稳定性和可靠性。两种文件系统都相当类似,都有一部分叫inode表,相当于index。其包含文件类型、权限、uid、gid、link、时间戳、文件指针等等,反正除了文件的具体内容外其他关于文件的东东都在这个表里面。这个有点像fat表。
对于ext3/ext2,每个文件夹也只是对应一个inode,所有应用程序最后也是根据inode来操作。有必要再说说几个常用的命令cp、mv、rm还有hard link、soft link的具体操作,以便更好地理解整个文件的体系。
如果cp要复制一个文件,
- 第一、会分配一个新的inode号码,然后根据cp的参数和默认值产生一条inode的条目(entry),跟着把这条目将其放在inode表中
- 第二、cp再创建一个所在目录的目录条目(dentry),关联名字和inode号码
- 第三、复制具体的文件内容到指定的磁盘位置。
如果mv要在同一个文件系统(估计是指同一个逻辑盘)移动一个文件夹或文件,它只会做两个操作:
- 一、创建一个新名称的目录条目
- 二、删除旧名称的目录条目。
如果mv的目标不在同一个文件系统就做一次cp。所以mv在本地操作可以非常的快。
说到rm,rm并不会直接删除文件内容。其首先释放inode的号码,然后将文件所占的block放在可用的列表,最后删除目录条目。
硬连接(hard link)可以说是一个文件额外的dentry,它只是一条连接到inode的路径名称。一般的文件会有一个hard link,而且可以有多个,但只能够存在同一个逻辑盘内。所以只有文件可以建hard link,文件夹是不可以的。这里还要提到一个link count的问题。一个文件或者说一个文件的inode都有一个link count的属性,只要增加一个hard link就会加1,如果使用rm就会减1,当link count到0就会彻底删除文件。
软连接(soft link)与Windows的shortcut基本相同,其实质是一个独立的文件,而文件的内容就是所指向的文件的路径。
常见的7种文件类型
- (–) regular file
普通文件,普通的意思就是不会对其有任何特别的对待 - (d) directory
文件夹文件,相当于一个特别的文本文件。对于系统来说只有inode号码才能访问具体的文件,而对于用户需要文件夹等组织文件,所以文件夹只是让用户好看一些而已。 - (l) symbolic link
连接文件,这里只是指soft link。其就是一个文本文件,文件的内容就是一个路径。 - (b) block special file
块设备文件。与其数据交换是以512字节为倍数为单位,一般是sda、hda等磁盘类型的东东。 - (c) character special file
字节设备文件。与其数据交换是以字节为单位,一般是tty这些设备文件。 - (p) named pipe
名称管道文件。一种进程与进程间交换数据的通道,有点像进程的shortcut。 - (s) socket
一种进程间交换数据的机制,很少由用户或管理员使用。
检查磁盘空间
由于文件种类等问题(比如hark link会造成重复统计)用ls显示的文件夹容量是不可靠的,只能使用其他方式检查磁盘及文件夹大小。
*du*
显示文件夹内文件的大小,主要以文件夹为目标
du –s 只显示总计
*df*
显示文件系统(罗辑盘及mount盘)的大小
文件的备份还原
Linux默认自带有一系列的文件打包及压缩工具。最早前是zip,由于以前的zip算法只能压缩一个文件,所以大量文件的压缩就需要先打包,这就要劳动另一个工具tar。
*tar*
由于tar已经附带gzip和bzip2的压缩,所以就不再额外解释这两个压缩命令了。
阅读(329) | 评论(0) | 转发(0) |