0

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

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

4

2 回答 2

2

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

因此,您可以这样做:

ls -lt /your/dir | grep ^d

这样,最后创建的目录将出现在顶部。如果您希望它反过来,最旧的在顶部,新的在底部,请使用-r

ls -ltr /your/dir | grep ^d
于 2013-09-30T10:20:41.373 回答
1

*/匹配目录。

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

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

但是,我不推荐这样做,因为解析的输出ls不安全的。

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

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"
于 2013-09-30T10:47:16.743 回答