如何从目录中查找最新文件

时间:2014-04-28 05:46:56

标签: linux shell

我想解析Linux服务器上/X的日志文件。 以下是场景:

  • 日志文件以5分钟的固定间隔或日志文件大小变为5MB时推送到/X
  • 现在我们正在尝试创建一个解析器来解析最新创建的日志文件并获取所需的信息

如何检索最新日志文件的文件名?

3 个答案:

答案 0 :(得分:1)

#!/bin/bash

dir=/X
for file in "${dir}"/*; do
    [ -f "${file}" ] || continue
    [ "${file}" -nt "${newest}" ] && newest=${file}
done

echo "the most recentently modified file is '${newest}'"

答案 1 :(得分:1)

嗨Abhinav如果您只想获取文件名,可以使用ls -Art |脚本中的tail -n 1命令。

答案 2 :(得分:0)

ls -t将按修改时间对文件进行排序(在您的情况下,它与创建时间相同,因为文件只写入一次),head -1将给出第一个文件,即最新文件:

ls -t /X | head -1

我认为更为常见的一个小变化是反向列出(-r)并使用tail

ls -rt /X | tail -1