一 Linux的文件系统1 我们都知道当我们安装Linux时会首先给系统分区,然后我们会把分区格式化成EXT3格式的文件系统。那么在Linux系统中还有没有其他的文件系统呢,下面我们就简单的介绍一下Linux系统中常见的几种文件系统。(1)EXT3文件系统:ext3(第三级扩展Linux文件系统,third extended Linux filesystem)。跟EXT2文件不同之处就是增加了日志功能。(2)EXT2和MSDOS:一般用于软盘(3)ISO9660:光盘的文件系统(4)GFS和GFS2:主要用于集群服务器的文件系统(SAN)二 Linux文件系统的节点(Inodes)1 Inode(index node )索引节点2 首先我们要清楚地是:一个文件其实是由两部分组成:节点表和数据区。Inodes table (节点表)包含了ext2和ext3文件系统的所有属性。节点表里面主要存放文件的类型,权限,UID,GID,Link count,大小和时间戳,数据存放在磁盘的什么位置。数据区里面就是存放真正的数据。3 一个inodes(节点号)的大小大概为128B,一个文件至少要占有1个inodes。通过tune2fs-l /dev/sda7 可以查看这个分区的inode size,inode count,block count。我们知道,计算机在识别一个用户是通过UID来识别的,识别一个进程是通过进程号来识别的,那么,同样,计算机识别一个文件是通过一个inode number来识别文件的。而文件名只是给人的识别的。4 查看节点号的方法:#ls-li[root@localhost ~]# ls -litotal 56533587 -rw------- 1 root root1050Mar6 02:15 anaconda-ks.cfg919063 drwxr-xr-x 2 root root 4096Mar6 02:43 Desktop524290 -rw-r--r-- 1 root root29302Mar6 02:15 install.log524291 -rw-r--r-- 1 root root3738Mar6 02:15 install.log.syslog前面的一串数字就是文件的节点号,其实我们的节点号是在分区创建的时候就已经分配好了的。5 下面我们来学习复制,剪切,删除对文件inode的影响(1)复制对文件inode的影响[root@localhost ~]# cd /boot/[root@localhost boot]# ls -li file6030 -rw-r--r-- 1 root root 0 Mar6 13:26 filea 可以看到,这个文件的节点号是6030,现在我们将它复制到另外一个分区[root@localhost boot]# cp file /var/[root@localhost boot]# cd /var/[root@localhost var]# ls -li file2115361 -rw-r--r-- 1 root root 0 Mar6 13:27 file将这个文件复制到/var分区下面后,这个文件的inode number就改变了。当一个文件从一个分区复制到另外一个分区的时候,系统就分配了另外一个inode给这个文件。b 那么在同一个分区复制文件节点号会有什么改变呢[root@localhost boot]# ls -li file6030 -rw-r--r-- 1 root root 0 Mar6 13:26 file[root@localhost boot]# cp file /boot/grub/[root@localhost boot]# cd grub/[root@localhost grub]# ls -li file22091 -rw-r--r-- 1 root root 0 Mar6 13:29 file可以看到,刚才这个文件的节点号是6030,现在就变成了22091了。在同一个分区里面复制文件,这个文件的节点号也是会发生改变的。因为在这个分区有两份相同的文件,只是文件的内容相同,但是文件的inode属性却是不一样的。2. 剪切对文件inode的影响a 同一分区的剪切[root@localhost ~]# cd /boot/[root@localhost boot]# ls -li file6030 -rw-r--r-- 1 root root 0 Mar6 13:26 file可以看到,这个文件的节点号是6030,现在我们将这个文件在同个分区里剪切一份。[root@localhost boot]# mv file /boot/test/[root@localhost test]# ls -li file6030 -rw-r--r-- 1 root root 0 Mar6 13:26 file可以看到,这个文件节点号是没有改变的。当在同一个分区里面移到文件,文件的节点号没有发生改变。b 不同的分区剪切[root@localhost ~]# cd /boot/test/[root@localhost test]# ls -li file6030 -rw-r--r-- 1 root[root@localhost test]# mv /boot/test/file /var/ftp/pub/[root@localhost test]# cd /var/ftp/pub/[root@localhost pub]# ls -li file325584 -rw-r--r-- 1 root root 0 Mar6 13:26 file可以看到,这个文件的节点号是肯定会变的。3 删除对inode的影响[root@localhost ~]# cd /boot/[root@localhost boot]# ls -li file6030 -rw-r--r-- 1 root root 0 Mar6 13:44 file[root@localhost boot]# rm -rf file现在我们把file这个文件给删除了,其实我们只是将file这个文件的节点表给删除了,其实我们的数据都还在。这也就是为什么当我们删除一个文件,这个文件还可以被找回来的原因。当然如果我们在到这个分区里面写入数据,那么原来的数据就会被覆盖。[root@localhost boot]# touch file1[root@localhost boot]# ls -li file16030 -rw-r--r-- 1 root root 0 Mar6 13:49 file1现在我们又新建了一个文件file1,这个文件的节点号也是6030,它就已经覆盖了以前的数据的节点号。那么以前的数据就找不回来了。4 总结复制:在同一个分区,节点号改变。在不同的分区,节点号改变。剪切:在同一个分区,节点号不变。在不同的分区,节点号改变。删除:只是删除了文件的节点表,数据没有被真正删除,只有当往这个分区在写入数据的时候,才会覆盖原来的数据。Linux文件合并去除重复RedHat Enterprise Linux 5.5 安装VMware Tools相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (0)