欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux 查看文件的创建时间 AG chatgpt 有大用

Linux 查看文件的创建时间

在 Linux 系统中,查看文件的创建时间(creation time / birth time)比查看修改时间或访问时间要复杂一些,因为标准的 stat 命令和 ls 命令默认不显示创建时间。以下是几种查看文件创建时间的方法:

1. 使用 stat 命令(需要支持 birth time 的文件系统)

bash
stat filename

在支持的系统中(如 ext4、btrfs、xfs 等现代文件系统),输出中会包含 Birth: 字段:

  File: filename
  Size: 4096       Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d Inode: 1572865     Links: 2
Access: 2023-01-01 10:00:00.000000000 +0800
Modify: 2023-01-01 10:00:00.000000000 +0800
Change: 2023-01-01 10:00:00.000000000 +0800
 Birth: 2023-01-01 09:30:00.000000000 +0800

2. 使用 debugfs 命令(仅适用于 ext 文件系统)

bash
debugfs -R 'stat <inode_number>' /dev/sdX

首先获取文件的 inode 号:

bash
ls -i filename

然后:

bash
sudo debugfs -R "stat <inode_number>" /dev/sdX

3. 使用 find 命令查看创建时间

bash
find /path/to/file -printf "%C+\n"

重要说明

  1. 不是所有文件系统都支持记录创建时间

  • 支持的:ext4、btrfs、xfs、zfs

  • 不支持的:ext3及更早版本、fat、ntfs(挂载时)

  • 备份或复制文件时,创建时间可能会丢失,因为很多工具不保留这个属性

  • 创建时间(Birth time)与三种常见时间的区别

    • atime:最后访问时间

    • mtime:最后修改时间(内容)

    • ctime:最后改变时间(元数据)

    • birth time:文件创建时间(不是所有系统都支持)

    其他实用命令

    只显示创建时间:

    bash
    stat -c %w filename

    显示完整时间信息:

    bash
    stat -c "Access: %x%nModify: %y%nChange: %z%nBirth: %w" filename

    如果文件系统不支持 birth time,这些命令会显示 -


    普通分类: