2013-09-30 119 views
0

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

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

+1

(http://pubs.opengroup.org/onlinepubs/009695399/ [由*修改*时间'LS -t'各种] utilities/ls.html#tag_04_81_04),而不是创建。传统的UNIX文件系统不记录创建时间。 – pilcrow

回答

2

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

因此,你可以这样做:

ls -lt /your/dir | grep ^d 

这样,最后创建的目录将出现在顶部。如果你希望它是倒过来,在顶部最古老的和新的底部,使用-r

ls -ltr /your/dir | grep ^d 
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" 
相关问题