获取最新日期名称的文件夹

时间:2014-01-09 13:56:15

标签: linux bash date directory

我有这个文件夹:

2014-09-01-00:00:01
2014-09-01-01:00:01
2014-09-01-02:00:01
2014-09-01-03:00:01
2014-09-01-04:00:01

(还有更多文件夹)

我把这个名字写成一个数组。 (folders=("2014-09-01-00:00:01" "2014-09-01-01:00:01"...)

如何获取最新日期的文件夹? (不基于创建/修改日期)

4 个答案:

答案 0 :(得分:2)

ls是第一个要考虑的问题,但parsing ls is evil。因此,我会使用find

find /your/path -mindepth 1 -maxdepth 1 -type d | sort -rn

它查找/your/path(不是子目录)中的所有目录,并以数字方式对它们进行排序。

第一个将是更新的。添加| head -1我们就会得到那个。

答案 1 :(得分:0)

考虑到您使用的方便日期/时间格式,您可以使用sort按字典顺序排序:

ls -d PARENT_DIR/*/ | sort | tail -1

答案 2 :(得分:0)

您可以使用以下命令

 ll -rt | tail -n 1

实际上它会为您提供父目录中的最新文件或目录。

但是,正如您在问题中添加的那样,您的父目录仅包含目录。你可以简单地使用上面的命令。

答案 3 :(得分:0)

bash filename pattern expansion为您提供按字母顺序排序的结果,因此:

folders=(*/)
echo "${folders[-1]}"