Эта команда работает в Mac OS X:
find "$1" -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head
В Linux, как просил оригинальный автор, используйте stat
вместо gstat
.
Этот ответ, конечно, является выдающимся решением user37078 , переведенным из комментария в полный ответ. Я смешал в понимание CharlesB , чтобы использовать gstat
в Mac OS X. Я получил coreutils из MacPorts , а не доморощенного , кстати.
И вот как я упаковал это в простую команду ~/bin/ls-recent.sh
для повторного использования:
#!/bin/bash
# ls-recent: list files in a dir tree, most recently modified first
#
# Usage: ls-recent path [-10 | more]
#
# Where "path" is a path to target directory, "-10" is any arg to pass
# to "head" to limit the number of entries, and "more" is a special arg
# in place of "-10" which calls the pager "more" instead of "head".
if [ "more" = "$2" ]; then
H=more; N=''
else
H=head; N=$2
fi
find "$1" -type f -print0 |xargs -0 gstat --format '%Y :%y %n' \
|sort -nr |cut -d: -f2- |$H $N