首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash从文件列表中获取时间戳并将其与文件名进行比较

问Bash从文件列表中获取时间戳并将其与文件名进行比较
EN

Stack Overflow用户
提问于 2012-10-26 17:04:57
回答 2查看 1.3K关注 0票数 1

通过在部署时在后提交钩子上生成转储来实现项目的GIT存储库,包括DB结构。

我想要的是基于表结构上一次更改的时间戳的文件的简单版本控制系统。

在找到这个职位并建议检查MySQL数据dir中的*.frm文件的日期之后,我认为解决方案是基于最后一个日期实现它,作为生成文件的一部分。这是:

  1. 通过ls命令( ls -la *.frm类型)查找DB文件的最新日期时间(即/var/lib/mysql/databaseX/)
  2. 将该值(上次更改的文件)与某个文件(即/project/ dump _2012102620001.sql)中的值进行比较,其中的数字对应于最后生成的转储。
  3. 如果文件时间戳在该日期之后生成mysqldump命令,则忽略它,这样就不会生成转储并将其作为对GIT的更改提交。

不幸的是,我的Linux控制台/bash概念还远没有能力,也没有找到任何类似的脚本可以使用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 17:34:31

通过每次使用适当的mysqldump命令转储表结构,您可以省去很多麻烦,因为这是相对轻量级的,因为它不包含表内容。去掉顶部的可变时间戳信息,并与前面的文件进行比较。如果不一样的话就去商店。

票数 1
EN

Stack Overflow用户

发布于 2012-10-26 17:30:29

您可以使用[[ file1 -ot file2 ]]来测试file1是否比file2老。

代码语言:javascript
复制
last=$(ls -tr /path/to/db/files/*.frm | tail -n1)
if [[ dump -ot $last ]] ; then
    create_new_dump
fi
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13091295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档