Linux - 文件 timestamp

  1. 概述

    1. Linux 文件系统
    2. 文件的 文件时间戳
  2. 背景

    1. 尝试按照 创建时间, 给文件排序
    2. 但是发现, 好像不会用 ls 给文件排序
    3. 如果要 按照时间排序, 那么首先得搞明白 文件timestamp 才行
  3. 环境

    1. os
      1. CentOS 7.5
  4. 类型

    1. 记录类

1. 查看时间戳

  1. 概述
    1. 查看时间戳

命令1: ls -l

  1. 概述

    1. 最常见的 查看文件时间戳 命令
  2. 命令

    > ls -l
    -rw-------.  1 root    root        1715 Jun  8  2019 anaconda-ks.cfg
    drwxr-xr-x.  3 root    root          20 Jul 16  2020 compose
    drwxr-xr-x.  6 root    root         137 Jan 11  2020 demo
    drwxr-xr-x.  3 root    root          18 Dec 24 21:50 docker
    drwxr-xr-x.  9 root    root         129 Dec  1  2019 dockerfile
    drwxr-xr-x.  3 root    root          19 Jun 21  2019 git
    drwxr-xr-x.  2 root    root           6 Nov 19  2019 html
    -rw-r--r--.  1 root    root        2067 Dec 21 19:57 ip
    drwxr-xr-x.  2 root    root           6 Jun 26  2019 jenkins
    -rw-------.  1 root    root    23189504 Jun 22  2019 kuard-amd64.tar
    drwxr-xr-x.  2 root    root          32 Jun 19  2019 minikube
    drwxr-xr-x. 13 root    root        4096 Mar 10  2020 ModSecurity
    drwxr-xr-x.  3 root    root          26 Jun 21  2019 node_modules
    drwxr-xr-x.  3 root    root          19 Nov 19  2019 old
    drwxr-xr-x.  2 root    root          40 Jun 12  2019 shell
    drwxr-xr-x.  2 root    root          38 Jul 17  2020 tcpdump
    -rw-r--r--.  1 tcpdump tcpdump     1164 Jul 19  2020 v1.cap
    -rw-r--r--.  1 tcpdump tcpdump     1052 Jul 19  2020 v2.cap
    -rw-r--r--.  1 tcpdump tcpdump     1164 Jul 19  2020 v3.cap
    drwxr-xr-x.  2 root    root           6 Nov 29  2019 webapp_redis
    drwxr-xr-x.  2 root    root           6 Nov 19  2019 website
    
  3. 问题1: 这个显示的时间戳, 是 什么时间

    1. 问题

      1. rt
      2. 之前记得, Linux 文件系统下, 都会有 3 个时间
      3. 问题是, 这个是 三个 里的哪一个
    2. 解答

      1. 默认
        1. 时间: modification time
  4. 问题2: 这些时间, 都是什么呢

    1. 问题
      1. rt
      2. 起码得先看一眼, 长的什么样子吧

命令2: stat

  1. 概述

    1. 相对详细的查看 文件时间戳
  2. 命令

    > stat anaconda-ks.cfg 
      File: ‘anaconda-ks.cfg’
      Size: 1715      	Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d	Inode: 33582979    Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:admin_home_t:s0
    Access: 2021-02-18 14:17:31.369000000 +0800
    Modify: 2019-06-08 19:02:32.608966618 +0800
    Change: 2019-06-08 19:02:32.608966618 +0800
     Birth: -
    
  3. 时间

    1. Access: 2021-02-18 14:17:31.369000000 +0800
      1. 以下简称 atime
    2. Modify: 2019-06-08 19:02:32.608966618 +0800
      1. 以下简称 mtime
    3. Change: 2019-06-08 19:02:32.608966618 +0800
      1. 以下简称 ctime

2. 时间戳们

  1. 概述

    1. 时间戳们
  2. 准备

    1. 文件组成
      1. 概述

        1. 一个比较简单的文件组成
      2. 组成

        1. 元数据
          1. 描述文件的数据
          2. 文件的各种属性
        2. 数据
          1. 文件内容

1. atime

  1. 概述

    1. atime
  2. atime

    1. Access Time

      1. 上一次 访问文件内容 的时间
    2. 例如

      1. 通常的 读文件

2. mtime

  1. 概述

    1. mtime
  2. mtime

    1. Modify Time

      1. 上一次 修改文件内容 的时间
    2. 例如

      1. 编辑

3. ctime

  1. 概述

    1. ctime
  2. ctime

    1. Change Time

      1. 上一次 修改元数据 的时间
    2. 例如

      1. 移动
      2. 改名

3. Birth

  1. 概述

    1. Birth
  2. 问题: Birth 是什么情况

    1. 问题

      1. rt
    2. 解答

      1. 这个是 ext4 预留的位置
      2. 记录 文件创建 的时间
      3. 但是目前, 还没有 具体的实现
      4. 所以建议, 目前依赖这个字段

ps

  1. ref
    1. Linux File Timestamps Explained: atime, mtime, and ctime
上一篇:郑州轻工业大学oj 1007


下一篇:[Git[ 解决 git branch -M main error: refname refs/heads/master not found