在磁盘上存放的每一个文件可以分为两个部分:一部分为文件的内容,即文件的数据(data)部分,比如文本的内容可以通过cat命令查看。此部分内容是存放在磁盘专门的数据空间(data block)中的。还有一部分为文件的属性信息,即文件的元数据(meta data),比如文件的类型,大小,节点号(inode number),权限,所有者,所属组,时间等。此部分内容是存放在磁盘中专门的节点空间(inode block)中的。 每一个时间的时间属性有三种:atime,ctime,mtime atime:access time,记录最后一次的访问时间 mtime:modify time,记录最后一此文件数据部分的修改时间 ctime:change time,记录最后一次文件元数据的修改时间 mtime只有修改文件内容才会改变,更准确说是修改了它的data black部分,而ctime是修改文件属性时改变,确切说是修改了它的元数据(inode block)部分,列如重命名文件,修改文件所以者,移动文件(如果在同一分区中移动文件时,则没有改变data black只是改变了其inode指针,或文件名)等。如果修改文件内容,不仅mtime发生变化,也一定会改变ctime。因为修改文件内容至少已经修改了inode记录上的mtime,这也属于元数据部分,也就是说mtime的改变一定会引起ctime的改变。 对目录这种特殊文件而言,其目录文件的数据部分(data block)存放的就是目录中的文件名等信息。所以在目录中创建、删除文件等都会改变目录的mtime。而目录的ctime,除了目录的mtime引起ctime改变之外,对目录本身的元数据修改也会改变ctime。 如何查看文件的属性: 除了ls可以简单查看文件的属性,stat可以详细查看文件的属性 stat命令语法格式 stat [文件或目录] 示例: 解释说明:利用stat命令,可以显示文件的元数据(13) File:文件名 Size:文件大小(单位:B) Blocks:文件所占扇区个数,为8的倍数(通常的 Linux 的扇区大小为 512 B,连续八个扇区组成一个block) IO Block:每个数据块的大小(单位:B) regular file:普通文件(此处显示文件的类型) Inode:文件的Inode号《参考链接:理解inode》 Links:硬链接次数 Access:权限 Uid:(属主id/属主名) Gid:(属组id/属组名) Access:最近访问时间 Modify:数据改动时间 Change:元数据改动时间 时间戳 此处着重说明一下文件的时间戳: Access:Access time(atime),是指取用文件的时间,所谓取用,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容;使用cp命令把该文件(即来源文件)复制成其他文件;或者在这个文件上运用grep、sed、more、less、tail、head等命令,凡是读取文件的操作,均改变文件的Access time Modify:Modify time(mtime),是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的方式)或存盘的操作,就会改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time Change:Change time(ctime),是指文件属性或文件位置改动的时间,如:使用chmod、chown、mv指令集;使用ln做文件的硬链接,都会改变文件的Change time