Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21717
  • 博文数量: 16
  • 博客积分: 745
  • 博客等级: 军士长
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-07 23:03
文章分类
文章存档

2010年(16)

我的朋友
最近访客

分类: LINUX

2010-05-13 23:36:25

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种文件类型
  1. (–) regular file
    普通文件,普通的意思就是不会对其有任何特别的对待
  2. (d) directory
    文件夹文件,相当于一个特别的文本文件。对于系统来说只有inode号码才能访问具体的文件,而对于用户需要文件夹等组织文件,所以文件夹只是让用户好看一些而已。
  3. (l) symbolic link
    连接文件,这里只是指soft link。其就是一个文本文件,文件的内容就是一个路径。
  4. (b) block special file
    块设备文件。与其数据交换是以512字节为倍数为单位,一般是sda、hda等磁盘类型的东东。
  5. (c) character special file
    字节设备文件。与其数据交换是以字节为单位,一般是tty这些设备文件。
  6. (p) named pipe
    名称管道文件。一种进程与进程间交换数据的通道,有点像进程的shortcut。
  7. (s) socket
    一种进程间交换数据的机制,很少由用户或管理员使用。

检查磁盘空间
    由于文件种类等问题(比如hark link会造成重复统计)用ls显示的文件夹容量是不可靠的,只能使用其他方式检查磁盘及文件夹大小。
*du*
显示文件夹内文件的大小,主要以文件夹为目标
du –s 只显示总计

*df*
显示文件系统(罗辑盘及mount盘)的大小

文件的备份还原
    Linux默认自带有一系列的文件打包及压缩工具。最早前是zip,由于以前的zip算法只能压缩一个文件,所以大量文件的压缩就需要先打包,这就要劳动另一个工具tar。

*tar*
由于tar已经附带gzip和bzip2的压缩,所以就不再额外解释这两个压缩命令了。

阅读(329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~