首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取最新的SQL转储文件

获取最新的SQL转储文件
EN

Stack Overflow用户
提问于 2019-05-16 13:47:30
回答 2查看 53关注 0票数 0

我将下列日期和时间保存为文件名:

代码语言:javascript
复制
/app/sql/20190101_2000.sql
        /20190115_1423.sql
        /20190222_1255.sql
        / etc...

现在,我想做一个脚本,根据它的名称,为我提供最新的文件。我无法确定最后的编辑或创建日期,因为有时会导入这些文件,并从它的导入中获取日期时间,而不是从其创建日期。

格式是,正如您可以看到的YYYYMMDD_hhmm.sql

到目前为止我所得到的(对不起,我不是巴什的专家)

代码语言:javascript
复制
newestfile="000000000000"

for file in *.sql ; do
    filedate="${file%.sql}" # remove the '.sql'
    filedate="${filedate//_}" # remove the underscore, so I can compare

    if [[ "$filedate" -gt "$newestfile" ]] ; then
        newestfile="$filedate"
    fi
done

echo "highest file found: $newestfile"

问题是我不能再往前走了。现在我想将这个“最新”文件导入mysql,但我无法将下划线移回原来的位置。如果我一开始不删除下划线,我就无法与-gt进行比较。

我的代码看起来会像这样继续下去:

代码语言:javascript
复制
mysql -uuser -p1234 my_database < $newestfile

若要导入sql转储,请执行以下操作。

有什么更好的解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-16 13:55:25

你可以整理你的文件并得到第一个

代码语言:javascript
复制
newestfile=$(ls /app/sql/$.sql | sort -r | head -n 1)
票数 2
EN

Stack Overflow用户

发布于 2019-05-16 13:54:50

那这个呢?

代码语言:javascript
复制
ls -R *.sql | sort | tail -1

ls -R在子目录中执行ls

sort进行排序。

最后一个是tail -1。在对结果进行排序时,将显示日期最高的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56170105

复制
相关文章

相似问题

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