识别为最近日期命名的目录

时间:2011-08-24 19:50:40

标签: bash

我为运行程序的日期命名输出文件夹。所以,我的目录中有以下文件夹:

2011.05.18
2011.06.30
2011.07.07
2011.07.27
2011.08.03

如何从命令行自动识别最新的一个(例如,以便我可以在其中创建文件的符号链接)?

4 个答案:

答案 0 :(得分:4)

MOSTRECENT=`ls -1 ????.??.?? | sort -r | head -1`

或不使用ls

MOSTRECENT=`for F in ????.??.??; do echo $F; done | sort -r | head -1`

答案 1 :(得分:2)

LATEST=`ls -d1 | sort | tail -1`

如果除了yyyy.mm.dd目录之外还有其他文件/目录,那么这样会更好:

LATEST=`ls -d1 [0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9] | sort | tail -1`

答案 2 :(得分:1)

for dir in ????.??.?? ; do LATEST=$dir ; done

(不需要ls。)

答案 3 :(得分:0)

获取按修改时间排序的目录列表,并选择最顶层; ls -t|head -n 1