获取文件创建/创建时间?

231 timestamps files

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

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

Adr*_*ish 183

stat命令可能会输出这个-(破折号)。我想这取决于您使用的文件系统。stat称之为“出生时间”。不过,在我的ext4fs 上它是空的。

%w 文件出生时间,人类可读;- 如果未知

%W 文件出生时间,自Epoch以来的秒数;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: -
Run Code Online (Sandbox Code Playgroud)

  • 当你提到 %w 时,你没有说如何使用它。如果默认情况下不包含创建日期,我建议修改此答案以显示示例命令以获取创建日期。例如“stat -c %w 文件” (21认同)
  • Google [告诉我](https://www.howtogeek.com/517098/linux-file-timestamps-explained-atime-mtime-and-ctime/)“*标准 ext4 Linux 文件系统也为文件分配空间 -在其内部文件系统结构中创建时间戳,但这尚未实现。有时,会填充此时间戳,但您不能依赖其中的值。*” (3认同)
  • 我觉得windows在这种情况下是最有优势的。 (3认同)
  • 如果我们没有安装 `stat` 命令并且我无法将 `stat` 命令添加到这个环境中怎么办?`bash: stat: 命令未找到` (2认同)

thi*_*ton 74

Linux 为文件提供了三种时间戳:上次访问内容的时间(atime)、上次修改内容的时间(mtime)和上次修改 inode 的时间(元数据,ctime)。所以,不,你不能。但是,目录的 mtime 对应于上次发生的文件创建或删除。

  • 文件创建时间实际上存储在 Ext4 中,但不能直接访问。见 http://unix.stackexchange.com/a/50184/8250 (37认同)
  • Linux 操作系统与可用于 Linux 的各种文件系统之间存在一种自然的混淆。您不能只针对特定于文件系统的事情对 Linux 做出一般性陈述。 (9认同)

小智 14

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

  • 一般不正确。Linux 中使用的一些常见文件系统不存储创建时间,但其他文件系统存储:参见 http://unix.stackexchange.com/questions/7562/what-file-systems-on-linux-store-the-creation-time (13认同)
  • 某些文件可能具有记录创建日期/时间的元数据(例如 exif)。如果您的所有文件都是数码照片,那么您很可能拥有这些数据。这是一个 [使用 perl 的 Image::ExifTool 的示例](https://github.com/jonathancross/j-renamer/blob/master/j-renamer.pl#L322)。 (2认同)
  • 它主要取决于文件系统,例如“ext4”文件系统存储文件创建日期。 (2认同)