linux 文件系统详解之文件时间属性

2019-03-28 09:07|来源: 网络

目录

    • 概述linux文件系统

    • 概述linux文件的时间属性

    • 详解各类时间属性

linux 文件系统概述

    文件是linux中存储数据的基本结构,存储在像硬盘hard disk、光盘CD、软盘等存储介质中,并且被命名,该名称即文件名。linux中的文件均为无结构的字符流格式。

    linux中有很多文件,通过倒树形的目录结构来对文件进行管理、分类。目录即组织、说明文件元信息(MetaData)的一种倒树结构。整个linux文件系统有个根/(root),在跟上有分叉,分插上可以再生分叉,分叉上还可以长出叶子。根和叉就是linux文件系统中的目录,叶子就是文件。通过文件的路径来访问、操作文件。

linux文件的时间属性概述

    在创建、修改文件、目录后,他们的属性会发生变化,其中就有时间属性。可以通过ls或stat等命令来查看文件、目录元信息。文件的时间属性分为3中,分别是文件访问时间、修改时间、改变,下面我们来具体看下在什么情况下那种属性发生变化。 在linux系统中,文件的时间属性通过一个struct来表示。如下:

  1: struct stat {
  2:         dev_t      st_dev;    /* device inode resides on */
  3:         ino_t      st_ino;    /* inode's number */
  4:         mode_t     st_mode;   /* inode's mode */
  5:         nlink_t    st_nlink;  /* number of hard links to the file */
  6:         uid_t      st_uid;    /* user ID of owner */
  7:         gid_t      st_gid;    /* group ID of owner */
  8:         dev_t      st_rdev;   /* device type, for special file inode */
  9:         struct timespec st_atimespec;  /* time of last access */
 10:         struct timespec st_mtimespec;  /* time of last data modification */
 11:         struct timespec st_ctimespec;  /* time of last file status change */
 12:         off_t      st_size;   /* file size, in bytes */
 13:         int64_t    st_blocks; /* blocks allocated for file */
 14:         u_int32_t  st_blksize;/* optimal file sys I/O ops blocksize */
 15:         u_int32_t  st_flags;  /* user defined flags for file */
 16:         u_int32_t  st_gen;    /* file generation number */
 17:     };

linux 三种文件时间属性详解

    linux 的文件时间属性分为:访问时间access time、修改时间modifed time、更改时间change time。

文件访问时间access time

    当我们创建一个文件后,文件就有了相同的访问时间access time、修改时间modifed time、更改时间change time。但是当对文件做一些变更后,这些时间可能会发生变化。

    文件访问时间access time,即读取了文件的内容。如果查看了文件,文件的查看时间就会更新。如进行cat、more、less等操作后,文件的访问时间就会更新。

如下用ls默认是看到文件的修改时间modifed time

image

通过stat 命令,能够看到更精确地时间属性信息

image

我们看到文件的访问时间是2013-06-13 17:07:15.000000000 +0800,下来我们less查看一下这个文件的内容。less后退出,我们看到这个文件的访问时间属性已经变化

image

文件修改时间modifed time

  文件的修改时间即对文件内容的修改时间,比如通过vim、emacs对文件内容进行了修改、或追加等其他方式对文件内容做修改后,文件的修改时间就会发生变化。

如下实例,通过追加修改了文件内容,文件的修改时间modifed time随之发生了变化

image

文件更改时间change time

  文件更改时间即对文件文件的其他属性的变化时间。比如通过chmod、chown、ln等对文件的(忽略文件访问时间属性、文件修改时间属性的变化)属性变化随之更新文件的访问时间。chmod、chown更新文件全新,ln更新文件的软硬链接属性信息。

如下实例创建文件的硬链接来更改文件的更改时间

image


转自:http://www.cnblogs.com/lwgdream/p/3220628.html

相关问答

更多

有LINUX镜像文件,怎样装LINUX系统?

刻成光盘,让光驱引导启动

linux系统使用详解?

你下载的那个可能是个live cd是从光盘直接运行的 从光盘读数据当然很慢了 不过可以安装到硬盘上那样就快了,

linux下c开发了一个应用程序,它的扩展名是什么?

这个貌似涉及到linux文件系统。linux文件系统与windows的不相同,windows系统应该是通过文件后缀来进行文件类型是别的,而linux虽然也会借鉴后缀信息,但好像不完全依赖于文件后缀。 比如,在windows下,讲一个txt的文件后缀改为.doc那么系统会提示更改后缀可能导致文件不可用,并且默认以office将其打开,而不是记事本。而在linux上你更改一个文件后缀,不会有系统提示,比如你将一个txt的文件(其实所谓的txt文件在linux下,默认是没有后缀的)后缀改为.pdf,系统 ...

linux下卸载所有文件系统的命令命令是什么

使用 linux umount命令参数 功能说明:卸除文件系统。 语  法:umount [-ahnrvV][-t ][文件系统] 补充说明:umount可卸除目前挂在Linux目录中的文件系统。 参  数: -a 卸除/etc/mtab中记录的所有文件系统。 -h 显示帮助。 -n 卸除时不要将信息存入/etc/mtab文件中。 -r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。 -t 仅卸除选项中所指定的文件系统。 -v 执行时显示详细的信息。 -V 显示版本信息。 [文件系统] 除了 ...

linux如何重启文件系统

执行命令 hostname,修改当前系统的主机名 # hostname newhost 修改 /etc/sysconfig/network,使得下次启动时使用新的主机名 hostname=newhost 修改 /etc/hosts。不修改的话,apache等需要解析主机名的服务将不能启动 127.0.0.1 newhost localhost 最后就是命令行提示符中的主机名还没有改变,如果很在意的话,重新登录一下就行了

linux的应用范围有哪些?

你的问题太多,让人无法全面回答!每个问题都可以列个专题! 1,只要你想用他就可以被改成你想用的!(ps2的系统也是linux为核心的) 2,在服务器领域应用最为广泛! 3,在服务器领域最为多的就是web服务器<lmpa>这个词你可以搜索一下!(互联网帝国google的服务器所运行的操作系统就是以linux为核心的) 4,这个问题就不好说了太多了手机,pda,机顶盒等等 5,我不明白你这个问题问的是什么!?开发linux内核的工具?还是linux平台上的开发工具? ******补充 6,你的补充问题 ...

如何删除linux系统 详解

删除Linux最需要注意的地方,就是MBR(Master Boot Record)。在删除Linux分区前,我们需要将启动Windows的引导信息写入MBR,否则,MBR中的Linux引导信息,当然就不能启动Windows系统了。 一:将Windows的引导信息写入MBR 写入MBR的方法,有两种比较简单 第1种方法:就是将Windows的安装盘放入计算机以后,重启计算机,进入Windows安装程序,随后,进入恢复控制台,输入命令fixmbr即可。 第2种方法是为没有Windows安装盘的朋友准备 ...

LINUX

编程语言多种多样,不知道你说的是哪种。 脚本语言如shell,perl,python等有解释器和文本编辑器就行了,大型的项目可以考虑使用IDE。 C/C++,java,这些要编译的,需要编译器,c/c++通常用GCC(GNU Compiler Collection)就够了,java的话要有jdk。还需要一个文本编辑器,另外大项目的话可以考虑用IDE。 动态web编程,比如HTML,javascript,php,数据库,涉及到这些的需要搭建一个web服务器环境

Linux系统下的文件系统有哪些?

我们在Linux中常用的文件系统主要有ext3、ext2及reiserfs。Linux目前几乎支持所有的Unix类的文件系统,除了我们在安装Linux操作系统时所要选择的ext3、reiserfs和ext2外,还支持苹果MACOS的HFS,也支持其它Unix操作系统的文件系统,比如XFS、JFS、Minix fs 及UFS等,您可以在kernel的源码中查看;如果您想要让系统支持哪些的文件系统得需要把该文件系统编译成模块或置入内核; 当然Linux也支持Windows文件系统NTFST和fat,但 ...

Linux ?

ubuntu比较好用,我还没听过要用序列号这一说,你的可能是OEM版的?