如何找到与模式匹配的最新文件

时间:2020-03-13 16:34:50

标签: bash cron

我对此并不陌生,但有人要求我编写一个bash脚本,以将SFTP文件从一台服务器传输到另一台服务器。创建以下文件后,bash脚本每天将使用CRON运行4次。 客户的网站每天创建包含订单4次的XML文件。每个文件都有一个新名称,并带有一个递增编号。 例如:

a_file-01.xml
b_file-01.xml
a_file-02.xml
b_file-02.xml
a_file-03.xml
b_file-03.xml

如何找到最新的文件(文件数量也最多)?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是仅使用.Activate。您可以通过以下方式在目录中订购文件:rowNum = Workbooks(WBActive).Sheets(SHActive).Selection.Row 。最新文件在列表顶部。这样就可以了:

ls

但是,您可能希望遍历以获得结果(避免无意中目录中的文件):

ls -t

答案 1 :(得分:0)

这是执行此操作的功能。

latest () { 
    local file latest;
    for file in "${1:-.}"/*.xml; do
      [[ $file -nt $latest ]] && latest=$file;
    done
    printf '%s\n' "$latest"
}

在xml文件所在的目录中运行该文件。

latest

无论数量多少,都应打印出最新的修改文件。

相关问题