二、(3)Linux的文件与数据之:元数据

文件的元数据

在Linux的文件系统中,数据可分为两大类:数据元数据

  • 数据:泛指普通文件中的实际数据
  • 元数据:用来描述一个文件的特征的系统数据

这样抽象的描述并不能很清楚地表示元数据的定义,所以下面将借助stat命令进行举例说明:

stat命令

stat – display file or file system status(用于展示文件或文件系统的状态)

  • 用法:stat [OPTION]… FILE…
  • 示例:

搜狗截图20180110191631

  • 解释说明:利用stat命令,可以显示文件的元数据
    • File:文件名
    • Size:文件大小(单位:B)
    • Blocks:文件所占扇区个数,为8的倍数(通常的 Linux 的扇区大小为 512 B,连续八个扇区组成一个block)
    • IO Block:每个数据块的大小(单位:B)
    • regular file:普通文件(此处显示文件的类型)
    • 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

touch命令

为了更形象地描述时间戳,下面将引入touch命令,通过具体的例子来进行区分:

touch – change file timestamps(修改文件的时间戳)

  • 用法:touch [OPTION]… FILE…
  • 常用参数:
    -c:指定的文件路径不存在时不予创建
    -a: 仅修改access time
    -m:仅修改modify time
    注意:Change time不能手动指定
    -t:修改Access time和Modify time为指定时间,格式为:[[CC]YY]MMDDhhmm[.ss](年月日时分.秒)
  • 示例:
  1. 首先使用touch命令创建一个空文件(touch + 文件名,当文件不存在时,可以用于创建空文件)
    搜狗截图20180111121148
  2. 使用touch -a 123.txt,修改123.txt的Access时间为当前系统时间
    搜狗截图20180111123007
    这时我们发现文件的Change time一同被改变了,因为Access time属于文件元数据中的一项,当Access time被修改时,文件的属性也被改动
  3. 使用touch -m 123.txt,将123.txt的Modify时间改为当前系统时间
    搜狗截图20180111123523
    这时我们发现文件的Change time一同被改变了,原因和上面相同,当Modify time被修改时,文件的属性也被改动
  4. 使用touch -t 1801120000.00 123.txt,将文件的访问和修改时间改为2018年1月12日0点0分0秒
    搜狗截图20180111124646

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91013

(1)
ZSZS
上一篇 2018-01-10 18:43
下一篇 2018-01-11 14:16

相关推荐

  • Lua简明教程

    这几天系统地学习了一下Lua这个脚本语言,Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,这是多么地变态啊(/bin/sh都要1M,MacOS平台),而且能和C语言非常好的互动。我很好奇得浏览了一下Lua解释器的源…

    Linux干货 2016-08-15
  • 记马哥教育第30期Linux云计算面授班开班典礼

    记马哥教育第30期Linux云计算面授班开班典礼

    2018-03-26
  • find、locate详细解析

    文件查找 在linux系统中如果我们不知道具体的文件的具体位置,我们可以使用文件查找命令来找到我们想找的文件,linux中也有相当优秀的查找命令,(如locate、find),通常查找速度快是locate,因为它是利用数据库查找的,所以速度很快,而find是全磁盘扫描进行查找,所以速度比较慢。 locate和find都是在文件系统上查找符合条件的文件含义。 …

    Linux干货 2016-08-13
  • Linux文件系统的创建、检测、修复、分区等工具的使用

    一、文件系统管理 什么是文件系统?     我的理解是文件系统是对磁盘上的数据和文件结构的管理规范。     如果文件系统没有继承性,那么以前文件系统的数据就无法传到新的文件系统中。     Linux的文件系统有这么几种:ext2, ex…

    系统运维 2016-03-03
  • Ansible安装及简单使用

    简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包…

    Linux干货 2016-08-07
  • sed与vim浅析

    sed与vim sed Stream EDitor, 行编辑器,sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。…

    Linux干货 2016-08-10