![查找出生日期在给定时间戳之后的文件的便携式方法](https://linux22.com/image/166681/%E6%9F%A5%E6%89%BE%E5%87%BA%E7%94%9F%E6%97%A5%E6%9C%9F%E5%9C%A8%E7%BB%99%E5%AE%9A%E6%97%B6%E9%97%B4%E6%88%B3%E4%B9%8B%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%E4%BE%BF%E6%90%BA%E5%BC%8F%E6%96%B9%E6%B3%95.png)
根据如何查找文件的创建日期?,在 Linux 文件系统中,例如 ext4、Btrfs 和 JFS,存储文件创建时间(又名出生时间),可以使用以下命令显示文件出生时间(以人类可读的格式)
stat -c '%w' approved-images.txt
2019-12-04 16:50:21.539553500 +0000
(请注意,在 Linux 上这需要coreutils
8.31、2.28glibc
和内核版本 4.11 或更高版本.)
但 POSIX 标准只定义了三个不同的时间戳为每个文件存储:最后一次数据访问的时间、最后一次数据修改的时间、最后一次文件状态改变的时间。
也在POSIX 标准find
,没有提及文件的创建日期。
对于存储创建日期的文件系统,是否有一种方法可以在 bash、dash 和 zsh shell 中找到出生日期在给定时间戳之后的文件?
编辑:正如评论者杰德BP, 在Linux 中真的没有办法获取 cifs/smb 共享上文件的创建时间吗?和Linux 内核还没有接口来获取文件创建日期吗?关于这个问题已经进行了广泛的讨论。
并且,正如评论者斯蒂芬·查泽拉斯, 在删除特定日期之前创建的所有文件据说有些BSD必须find -newerBt
检查文件的inode诞生时间。