有没有办法知道在Ubuntu的文件创build时间?

我正在使用Ubuntu并想知道文件的创build时间,即使它被修改或访问?

Solutions Collecting From Web of "有没有办法知道在Ubuntu的文件创build时间?"

不幸的是,Unix不存储文件的创建时间。

所有你能使用stat

  1. 上次访问的时间
  2. 上次修改的时间
  3. 上次状态更改的时间

注意:当使用文件系统类型时, ext4 crtime可用!

这个小脚本可以得到ext4的创建日期:

#!/bin/sh fn=`realpath $1` echo -n "Querying creation time of $1..." sudo debugfs -R "stat $fn" /dev/sda4|grep crtime 

我把它命名为fcrtime并把它放在我的~/bin文件夹中。 所以在任何文件夹中,我都可以使用如下命令: fcrtime example.odp

示例输出:

crtime: 0x5163e3f0:12d6c108 -- Tue Apr 9 12:48:32 2013

与统计相同的文件相比:

  File: `example.odp' Size: 54962 Blocks: 112 IO Block: 4096 regular file Device: 804h/2052d Inode: 11019246 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ fulop) Gid: ( 1000/ fulop) Access: 2013-04-09 13:20:05.263016001 +0300 Modify: 2013-04-09 13:20:05.227016001 +0300 Change: 2013-04-09 13:20:05.227016001 +0300 Birth: - 

笔记

  1. realpath通常不是默认安装的。 在Ubuntu中,例如。 用sudo apt-get install realpath安装它
  2. 如果需要,用/dev/sda4 mount|grep ext4替换/dev/sda4

可用的最近的属性是“更改时间”,也称为ctime 。 这是更新的各种系统调用,任何修改inode,而不是它包含的数据。

 matt @ stanley:〜$ stat -c%z .bashrc 
 2010-08-17 11:53:56.865431072 +1000

链接

  • STAT(1)
  • STAT(3)

根据http://en.wikipedia.org/wiki/Comparison_of_file_systems ,这是ext4,btfrs,FAT,NTFS和UDF文件系统,以及其他一些你不可能遇到的。 它在ext2或ext3上不可用,可能是Ubuntu中最常见的文件系统格式。

你需要一个内核补丁: http : //lwn.net/Articles/394391/ 。 显然这是因为莱纳斯拒绝了创作时间的属性,理由是有人把它叫做“otime”,有人把它叫做“btime”,所以这个想法一定是没用的。

创建时间,被称为文件出生时间在一些文件系统上被支持,只有一些内核 。 命令将是Mohsen Pahlevanzadeh答案:

 stat --printf='%w' yourfile #human readable stat --printf='%W' yourfile #seconds from Epoch , 0 if unknown 

注:这个问题是如何找到文件的创建日期的重复? 。 另外,请确保阅读这个问题Linux上的什么文件系统存储创建时间? 。

Yup – stat(): http : //manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

家伙我刚刚写完脚本这个脚本来找到使用Perl文件的创建日期:

 use File::stat; if ( scalar( @ARGV ) == 0 ) { die("type a file name ex:perl filestat.pl <filename>"); } my $filename = $ARGV[0] ; my @info = stat($filename); print "Creation time :",scalar localtime stat($filename)->ctime; print "\n";