如何在Athena/AWS Glue Catalog中获取S3分区的最后更新时间
获取分区最后更新日期和时间的方法
要获取分区内最后有文件添加/修改的时间(而非分区创建时间),本质上需要遍历分区内所有文件,找到最新的文件修改/写入时间——因为分区本身不会单独记录这个时间戳,以下是不同系统的具体实现方法:
Linux 系统
方法1:获取最新文件的时间及路径
针对挂载在 /mnt/data 的分区(对应设备如 /dev/sda1),执行命令:
find /mnt/data -type f -printf '%T+ %p\n' | sort -r | head -n 1
- 说明:
-printf '%T+ %p'输出每个文件的ISO格式修改时间和路径;sort -r按时间倒序排列;head -n 1取最顶部结果,就是分区内最新修改文件的时间。
方法2:仅获取时间戳
如果不需要文件路径,可以简化为:
find /mnt/data -type f -printf '%T+\n' | sort -r | head -n 1
Windows 系统
方法1:命令提示符(CMD)
针对D盘,执行命令:
forfiles /p D:\ /s /m *.* /c "cmd /c echo @fdate @ftime @path" | sort /r | findstr /n "^1:"
- 说明:
/s递归遍历所有子目录;/m *.*匹配所有文件;echo @fdate @ftime @path输出文件的日期、时间和路径;sort /r倒序排序;findstr /n "^1:"提取第一行结果。
方法2:PowerShell(更直观)
打开PowerShell执行:
Get-ChildItem D:\ -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 1 LastWriteTime, FullName
- 说明:
Get-ChildItem -Recurse递归获取所有文件;Sort-Object LastWriteTime -Descending按最后写入时间倒序;Select-Object -First 1取最新的一条结果,包含时间和文件路径。
注意:如果分区内文件数量极多,遍历过程可能耗时较长,这是无法避免的——必须检查所有文件才能确定最新的更新时间。
内容的提问来源于stack exchange,提问作者Nabeel Khan Ghauri
相关产品推荐
相关产品推荐

