从文件路径获取最新创建的目录

时间:2013-09-30 10:19:31

标签: shell unix

我正在尝试查找在给定文件路径中创建的最新目录。

ls -t按文件或目录的时间戳对内容进行排序。但我只需要目录。

2 个答案:

答案 0 :(得分:2)

您可以使用目录在其信息开头有d的事实。

因此,您可以这样做:

ls -lt /your/dir | grep ^d

这样,最后创建的目录将显示在顶部。如果您希望它是相反的方式,顶部最旧,底部较新,请使用-r

ls -ltr /your/dir | grep ^d

答案 1 :(得分:1)

*/匹配目录。

因此,您可以使用以下命令获取最新目录:

ls -td /path/to/dir/*/ | head -1

但我不建议这样做,因为解析ls的输出是unsafe

相反,您应该创建一个循环并比较时间戳:

dirs=( /path/to/dir/*/ )
newest=${dirs[0]}
for d in "${dirs[@]}"
do 
    if [[ $d -nt $newest ]]
    then 
        newest=$d
    fi
done
echo "Most recent directory is: $newest"