可能的重复:如何执行ls,然后按创建日期对结果进行排序?




Linux中是否有命令显示文件的创建时间?我看到ls -l给出了上次修改的时间,但是我可以获取创建的时间/日期吗?

评论

即使在“ OT”正在要求一种工具来显示此信息的同时,我认为对于程序员来说,在处理更多UNIX-y文件系统时,这也是一件有价值的事情。

该命令是sudo debugfs -R'stat / path / to / file'/ dev / sdaX(用文件所在的文件系统的设备名称替换sdaX)。创建时间是crtime的值。您可以添加| grep。[^ ca] time仅列出mtime(修改时间)和crtime(创建时间)。

#1 楼

stat命令可以输出此-(破折号)。我猜这取决于您使用的文件系统。 stat称其为“出生时间”。在我的ext4 fs上它是空的。

%w文件诞生的时间,人类可以读取; -如果未知

%W文件诞生的时间,距离纪元以来的秒数; 0如果未知

stat foo.txt
  File: `foo.txt'
  Size: 239             Blocks: 8          IO Block: 4096   regular file
Device: 900h/2304d      Inode: 121037111   Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  adrian)   Gid: (  100/   users)
Access: 2011-10-26 13:57:15.000000000 -0600
Modify: 2011-10-26 13:57:15.000000000 -0600
Change: 2011-10-26 13:57:15.000000000 -0600
 Birth: -


评论


如果我们没有安装stat命令并且我无法将stat命令添加到该环境怎么办? bash:统计:找不到命令

–javaPlease42
2014年5月20日16:19

当您提及%w时,您并未说出如何使用它。我建议修改此答案以显示示例命令来获取创建日期(如果默认情况下不包含创建日期)。例如“ stat -c%w文件”

– dsollen
17年7月25日在15:43

很抱歉,但这根本不是正确的答案。我正在查看几天前创建的文件,它向我显示了出生时间是几个小时前。

–维尔默·河内(Wilmer E. Henao)
19年7月24日在14:53

Google告诉我:“标准ext4 Linux文件系统还在其内部文件系统结构中为文件创建时间戳分配了空间,但这尚未实现。有时,该时间戳已被填充,但是您不能依赖于价值。”

– Tgr
20 Jun 15 '13:47



#2 楼

Linux为文件提供了三个时间戳:内容的最后访问时间(atime),内容的最后修改时间(mtime)和inode的最后修改时间(metadata,ctime)。所以,不,你不能。该目录的mtime对应于上一次发生的文件创建或删除。

评论


文件创建时间实际上存储在Ext4中,但不能直接访问。参见unix.stackexchange.com/a/50184/8250

– Lekensteyn
13年2月16日在10:02

Linux操作系统和可用于Linux的各种文件系统之间自然存在混淆。您不能就文件系统特有的内容对Linux作一般性陈述。

– LarsH
15年12月18日在15:57

#3 楼

不,没有这样的命令。在Unix中,不存储创建时间(仅用于访问,修改和更改)。

评论


总的来说不正确。 Linux中使用的一些常见文件系统不存储创建时间,而其他文件系统可以存储创建时间:请参见unix.stackexchange.com/questions/7562/…

– LarsH
2015年12月18日在16:12



某些文件可能具有记录创建日期/时间的元数据(例如exif)。如果您的所有文件碰巧都是数码照片,则很可能具有此数据。这是使用perl的Image :: ExifTool的示例。

–乔纳森·克罗斯(Jonathan Cross)
17年1月24日在20:45

它主要取决于文件系统,例如ext4文件系统正在存储文件创建日期。

– David FerenczyRogožan
19-10-29在15:28