Shell命令获取具有最少访问日期/时间的目录

时间:2015-12-05 09:45:41

标签: linux bash shell

find命令中是否有任何排序选项可用于获取访问日期/时间最短的目录

6 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

    stat -f

答案 2 :(得分:0)

一个简单的shell脚本也可以:

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

注意:使用"$dir"/*/命令查找上面最早的目录(感谢Cyrus)和-type d下面的find

如果你需要递归解决方案,那么你可以使用find

进程替换重写为while循环
unset -v oldest
while IFS= read -r i; do
    [ "$i" -ot "$oldest" -o "$oldest" = "" ] && oldest="$i"
done < <(find "$dir" -type f)

答案 3 :(得分:0)

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

source

答案 4 :(得分:0)

这听起来更像ls的作业:

ls -ultd *|grep ^d

至少在我的系统(cygwin / bash)上使用find的问题是find 访问目录,因此所有访问时间都会导致当前时间,打败你的明显目的。

答案 5 :(得分:0)

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