linux - 比较本地和删除文件的最后修改日期

标签 linux bash shell

我可以使用获取远程文件的最后修改日期

curl --head http://url 2>/dev/null | grep -Po '(?<=^Last-Modified:\s).*$'

这让我得到日期/时间,例如

Wed, 04 Sep 2013 19:53:18 GMT

对于我可以使用的本地文件

find /path/file -exec stat \{} --printf="%y\n" \;

它让我得到日期/时间,例如

2012-01-09 09:50:30.000000000 -0500

如何将这个日期/时间与本地文件的最后修改日期进行比较?请注意,远程文件和本地文件的时区可能不同。

最佳答案

正如@fedorqui 所说,您实际上可以使用 date -d 来解析字符串。尝试运行以下命令:

$ date -d "$(<your curl command grepped>)" +%s   #+%s gets you timestamp.
$ date -d "$(<your find command>)" +%s

要进行实际比较,您可以减去时间戳,例如:

$ echo $(( $(date -d "$(<curl cmd>)" +%s)  -   $(date -d "$(<find cmd>)" +%s) ))

关于linux - 比较本地和删除文件的最后修改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911194/

相关文章:

linux - 递归获取它们所在的所有文件和目录

delphi - 如何在delphi中延迟shell命令?

java - 如何在 Android 应用程序中运行重命名 shell 命令(root)

linux - 从 PCIE 插槽号获取设备名称

perl - Bash的“DIE”信号处理程序

linux - 如何将目录变成隐藏目录

bash - shell命令中 "&&"的用途是什么?

linux - 我的 bash 脚本在终止命令后不会执行命令

linux - 就地执行时与 sed 的不同行为

c++ - Linux 上的 Netbeans C/C++ "step in to"Linux C 运行时代码?