我正在尝试查找在给定文件路径中创建的最新目录是什么。
ls -t
按文件或目录的时间戳对内容进行排序。但我只需要目录。
d
您可以使用目录在其信息的开头有一个这一事实。
因此,您可以这样做:
ls -lt /your/dir | grep ^d
这样,最后创建的目录将出现在顶部。如果您希望它反过来,最旧的在顶部,新的在底部,请使用-r
:
ls -ltr /your/dir | grep ^d
*/
匹配目录。
因此,您可以使用以下命令获取最新目录:
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"