Shell命令获取最less访问date/时间的目录

find命令中是否有任何sorting选项可以获取最less访问date/时间的目录

find . -type d -printf "%A@ %p\n" | sort -n | tail -n 1 | cut -d " " -f 2- 

如果您更喜欢没有前导路径的文件名,请将%p替换为%f

  • 下面的linux命令显示访问和修改时间以及大小

    stat -f

 find -type d -printf '%T+ %p\n' | sort | head -1 

资源

 find -type d -printf '%T+ %p\n' | sort 

这听起来更像是ls的工作:

 ls -ultd *|grep ^d 

至少在我的系统(cygwin / bash)中,使用find的问题是find对dirs的访问 ,所以所有的访问时间都会导致当前的时间,从而破坏了你明显的目的。

一个简单的shell脚本也会这样做:

 unset -v oldest for i in "$dir"/*; do [ "$i" -ot "$oldest" -o "$oldest" = "" ] && oldest="$i" done 

注意:用find命令找到最旧的目录,使用"$dir"/*/ above(感谢Cyrus)和-type d

在bash中,如果你需要一个递归的解决方案,那么你可以重写它作为一个while循环与进程替换使用find

 unset -v oldest while IFS= read -ri; do [ "$i" -ot "$oldest" -o "$oldest" = "" ] && oldest="$i" done < <(find "$dir" -type f)