我需要找到不超过30天的目录,然后按日期排序(从最新到最旧)。 这是我的命令:
find /tmp/logs/ -maxdepth 1 -mindepth 1 -type d -mtime -30
问题显然是排序部分:)
答案 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
为您提供包含修改日期的日志。对秒进行排序应该很容易。