根据这里的一个线索, OS X的HFS和微软的NTFS也都追踪出生时间,而且我被告知OS()和Cygwin版本的stat()返回这个信息。 其中看在OSX统计联机手册似乎是正确的,至少对于MAC:
a,m,c,B
上次访问或修改时间文件,上次更改inode时的时间文件或inode的出生时间 。
对于像ext4这样的新文件系统,Btrfs和JFS支持使用debugfs ,这里有一个bash函数,它将提取日期创建的时间戳:
如果您处理像EXT4这样的功能强大的文件系统,则可以恢复文件创建日期 – 用于Linux的日志文件系统:
改进了时间戳
… Ext4提供以纳秒为单位的时间戳。 另外,ext4还增加了对日期创建时间戳的支持。 但社会上对此没有共识
… Theodore Ts'o指出,虽然在inode中添加一个额外的创建日期字段是很容易的(因此在技术上可以支持ext4中的日期创建时间戳),但是修改或添加必要的系统调用,如stat()(这可能需要一个新版本)和依赖它们的各种库(如glibc)。 这些变化需要许多项目的协调。 所以,即使ext4开发者实现了对创建日期时间戳的初始支持,现在用户程序也不能使用这个功能。 最后引用Linus的最后一句话
让我们等待五年,看看是否真的需要和使用共识,而不是因为“我们可以”而匆忙进入某种东西。
xstat() { for target in "${@}"; do inode=$(ls -di "${target}" | cut -d ' ' -f 1) fs=$(df "${target}" | tail -1 | awk '{print $1}') crtime=$(sudo debugfs -R 'stat ' "${fs}" 2>/dev/null | grep -oP 'crtime.*--\s*\K.*') printf "%s\t%s\n" "${crtime}" "${target}" done }
运行它将返回创建日期:
:~$ echo 'print("hello world")' > blah.py :~$ xstat "blah.py" Mon Jul 6 13:43:39 2015 blah.py :~$ echo 'print("goodbye world")' > blah.py :~$ xstat "blah.py" Mon Jul 6 13:43:39 2015 blah.py
所以,除非文件系统支持它,否则不可能,如果文件系统没有,那么你可以使用子debugfs运行debugfs并解析输出。