查找和排序目录

时间:2011-04-07 12:46:53

标签: linux shell unix

我需要找到不超过30天的目录,然后按日期排序(从最新到最旧)。 这是我的命令:

find /tmp/logs/ -maxdepth 1 -mindepth 1 -type d -mtime -30

问题显然是排序部分:)

3 个答案:

答案 0 :(得分:5)

如果只有“少数”目录,您可以将find的输出传送到xarg ls -t,例如:

find /tmp/logs/ -maxdepth 1 -mindepth 1 -type d -mtime -30 | xargs ls -td1

答案 1 :(得分:3)

从上面找到你的发现,然后在最后使用它:

find -printf "%A@ %f\n" | sort -rn

告诉find打印时间(以秒为单位)和文件名。你可以按时间排序,然后去。如果需要,将 移入cut -d" " -f2-以消除时间。

答案 2 :(得分:0)

for f in $(find . -maxdepth 1 -mindepth 1 -type d -mtime -30)
do
    echo -n $f " "
    stat -c %Y $f
done

为您提供包含修改日期的日志。对秒进行排序应该很容易。