Linux:如何获取文件夹中的第二个最新文件

find这样的几篇文章,告诉如何find文件夹内的最新文件。

我的问题是前进一步,如何find同一文件夹内的第二个最新的文件? 目的是我正在寻找一种方法来diff最近的日志和以前的日志,以便知道已经改变了什么。 日志是每天生成的。

要做最后(最近修改)的两个文件的diff

 ls -t | head -n 2 | xargs diff 

在链接解决方案的基础上,你可以让tail保留最后两个文件,然后通过head传递结果,以保持第一个这样的:

 ls -Art | tail -n 2 | head -n 1 

这是一个基于统计的解决方案(在Linux上测试)

 for x in ./*; do if [[ -f "$x" ]]; then stat --printf="%n %Y\n" "$x"; fi; done | sort -k2,2 -n -r | sed -n '2{p;q}' 

这里的命令返回文件夹中最新的第二个文件

 ls -lt | tail -n 1 | head -n 2 

请享用…!