我有这个文件夹:
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"...)
)
如何获取最新日期的文件夹? (不基于创建/修改日期)
答案 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]}"