详解Linux命令修改文件的三个时间

Linux命令如何修改文件的三个时间

本文主要对stat和touch两个命令进行讲解。

如何查看一个文件的元数据呢?可以使用stat命令。

详解Linux命令修改文件的三个时间 Linux 第1张

File: 'ceshi1'  文件所在路径

  Size: 4096       Blocks: 8 文件占据的磁盘块          IO Block: 4096   directory 文件类型

Device: 801h/2049d  文件所在的设备名 Inode: 378  文件索引节点号        Links: 4 被硬链接的次数

Access: (0775/drwxrwxr-x) 文件的用户权限  Uid: ( 1000/houhaibo) 文件的属主ID及属主名  Gid: ( 1000/houhaibo)文件的属组及属组名

Access: 2017-02-27 00:00:00.000000000 -0800    文件的最近一次访问时间

Modify: 2016-12-25 22:48:47.523724399 -0800      文件的最近内容修改时间

Change: 2017-02-03 19:34:56.273575429 -0800   文件的最近元数据修改时间

 Birth: -

下面对stat命令进行详细的讲解

 stat [OPTION]... FILE...     显示文件或文件系统的元数据
 -f, --file-system   显示文件系统的元数据
-c  --format=FORMAT   使用具体的输出格式代替默认的输出格式

FORMAT 的格式如下:

%A : 显示人类可读的访问权限
%y:数据修改时间
%Y: 以时间戳的形式显示数据修改时间

还有很多格式,具体请使用man 命令查看
由上可以知道文件包含三个时间,即最近的访问时间、最近的内容修改时间、文件的元数据修改时间。而如何手动的修改这三个时间呢?那就用到touch命令

下面对touch命令进行讲解

 touch [OPTION]... FILE...     修改文件时间戳

其实touch命令不仅可以修改文件时间戳,还可以创建文件。即当touch后的文件名不存在时,系统会自动创建文件。

一般默认会将文件的访问时间和内容修改时间更新到当前时间。

-a  只改变访问时间
-m  只改变内容修改时间
-c  不创建任何文件
-d  设置修改的时间
-t   用[[CC]YY]MMDDhhmm[.SS]

 格式代替当前时间

cc 指定年份的前两位数字。
 yy 指定年份的后两位数字。
 mm指定一年的哪一月(从 01 到 12)。
 dd指 定一月的哪一天(从 01 到 31)。
 hh指 定一天中的哪一小时(从 00 到 23)。
 mm指 定一小时的哪一分钟(从 00 到 59)。
 ss指定一分钟的哪一秒(从 00 到 59)。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

参与评论