linux系统文件的元数据&时间戳

时间:2021-01-13 14:33:26

linux系统文件的元数据&时间戳

什么是元数据

文件的数据分两种:

  • 一种元数据,既属性数据:metadata

  • 一种就是数据本身:data


文件时间戳

atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;

ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;

mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;


如何查看元数据&时间戳

stat

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

语法

stat(选项)(参数)

选项

-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。

参数

文件:指定要显示信息的普通文件或者文件系统对应的设备文件名

实例

stat命令用于显示文件的状态信息

    [root@localhost ~]# stat /tmp/mylinux
      File: ‘/tmp/mylinux’
      Size: 143             Blocks: 0          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 277403      Links: 14
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2018-03-11 22:52:35.214307783 +0800
    Modify: 2018-03-11 22:51:01.463298567 +0800
    Change: 2018-03-11 22:51:01.463298567 +0800
     Birth: -
  • file:文件名
  • size:文件大小
  • block:文件占了多少个数据块
  • IO Block:文件所占数据块的块大小
  • Device:硬件,既说明该文件在硬盘的那个柱面
  • Inode:节点号
  • links:链接
  • Access(第一个):权限
  • Uid:该文件所属的属主
  • Gid:该文件所属的属组
  • context:安全上下文
  • Access(第二个):文件上一次的访问时间
  • Modify:文件上一次修改的时间
  • Change:文件上一次属性更改的时间

如何修改文件的时间戳

touch

touch命令可以把已存在文件的时间标签更新为系统当前的时间(默认方式)

语法

    touch(选项)(参数)

选项

    -a:或--time=atime或--time=access或--time=use  只更改存取时间;
    -c:或--no-create  不建立任何文件;
    -d:<时间日期> 使用指定的日期时间,而非现在的时间;
    -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
    -m:或--time=mtime或--time=modify  只更该变动时间;
    -r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
    -t:<日期时间>  使用指定的日期时间,而非现在的时间;
    --help:在线帮助;
    --version:显示版本信息。

参数

文件:指定要设置时间属性的文件列表。

修改时间戳

  • 改变访问时间

    [root@localhost ~]# touch -a /tmp/mylinux       
    [root@localhost ~]# stat /tmp/mylinux
      File: ‘/tmp/mylinux’
      Size: 143             Blocks: 0          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 277403      Links: 14
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2018-03-11 23:27:46.034515281 +0800
    Modify: 2018-03-11 23:21:07.508476105 +0800
    Change: 2018-03-11 23:27:46.034515281 +0800
    
  • 改变修改时间

    [root@localhost ~]# touch -m /tmp/mylinux
    [root@localhost ~]# stat /tmp/mylinux
      File: ‘/tmp/mylinux’
      Size: 143             Blocks: 0          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 277403      Links: 14
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2018-03-11 23:27:46.034515281 +0800
    Modify: 2018-03-11 23:28:34.661520061 +0800
    Change: 2018-03-11 23:28:34.661520061 +0800
     Birth: -
    
  • 自定义改变时间戳

    [root@localhost ~]# touch -t 201803102329.30 /tmp/mylinuxd
    [root@localhost ~]# stat /tmp/mylinux
      File: ‘/tmp/mylinux’
      Size: 143             Blocks: 0          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 277403      Links: 14
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2018-03-11 23:27:46.034515281 +0800
    Modify: 2018-03-11 23:28:34.661520061 +0800
    Change: 2018-03-11 23:28:34.661520061 +0800
     Birth: -