如何在特定日期时间格式下统计文件被修改的时间

时间:2013-02-20 00:52:47

标签: sql linux bash shell unix

我需要写一个文件,然后获取last_modified日期并更新表。

我如何做以下事项:

echo 'new file' > /tmp/file.txt
stat /tmp/file.txt
16777218 16641883 -rw-r--r-- 1 david wheel 0 6 "Feb 19 16:48:21 2013" 
"Feb 19 16:48:21 2013" "Feb 19 16:48:21 2013" "Feb 19 16:48:21 2013" 
4096 8 0 hello.txt

如何以"YYYY-MM-DD HH:MM:SS"格式获取last_modified时间以执行以下SQL更新?

update title set datetime='2012-01-01 00:00:01' where id=2

1 个答案:

答案 0 :(得分:1)

当您使用bash时,它在手册页中已经精确到您可以以特定格式显示结果,因此您可以使用精确的统计信息以人类可读的时间格式打印结果。

 stat --format=%x your_file

将显示上次访问的时间。

现在输出格式可能取决于你正在使用的shell,(因为stat可以是内置的),所以如果你想确保按照你想要的方式解析它,你可以使用大写的选项字母,将以Epoch格式为您提供小写字母选项结果。

因此,如果您创建一个可以录入Epoch时间的小程序并打印出您想要获得的人类可读时间,那么您可以这样做:

cat --format=%X your_file | ./your_epoch_translator_program > your_result_file
update tile set datetime=`cat your_result_file` where id=2

这只是一个想法,希望这会有所帮助!