根据Shell脚本中的文件模式获取最新/最新文件

时间:2015-07-21 02:52:10

标签: bash shell unix solaris

我正在Bash,Solaris中编写一个Shell脚本。

我正在尝试获取与特定文件模式匹配的最新文件,并将其覆盖。

我一直在阅读,而且大多数实现都基于ls命令,这对于有趣的角色来说效果不佳。我正在寻找可以与我迄今所写的内容相配合的替代方案。

for i in {1..5}
do
    for GMSFILE in $srcpath/KMS_MSEA_StatusAllocation_A*Y*.gms
    do
        if [ -e "$GMSFILE " ]
        then
            #GMS File Exist
            TXTFILE=${GMSFILE %%.*}.txt
            # Find same file name with txt extension now
            if [ -f "$TXTFILE" ]
            then
                echo $TXTFILE
                #scp -P 22 $GMSFILE $id@$ip:$destpath  #>> $log 2>&1
                break 2
            fi
        else
            sleep 5
        fi
    done
done

1 个答案:

答案 0 :(得分:0)

您可以使用带有date选项的-r命令来显示上次修改文件的时间。获得文件列表后,可以使用date -r $TXTFILE +%s获取上次修改文件的Unix日期戳。一旦知道列表中哪个值是最新的,您就可以选择从列表中复制该项目。