Usa find
-printf
di e ordinare in un formato di data ragionevole:
find -type f -printf '%T+\t%p\n' | sort -n
Questo dovrebbe ridurre al minimo i fork del processo e quindi essere il più veloce.
Esempi se non ti piace la seconda parte frazionaria (che comunque spesso non è implementata nel file system):
find -type f -printf '%T+\t%p\n' | sed 's/\.[[:digit:]]\{10\}//' | sort -n
find -type f -printf '%T+\t%p\n' | cut --complement -c 20-30 | sort -n
MODIFICA: Standard find
su Mac non ha -printf
. Ma non è difficile installare GNU find su Mac (vedi anche quel link per ulteriori avvertimenti riguardanti la compatibilità Mac/Linux e xargs
).
Ecco un metodo che utilizza stat
come suggerito da @johnshen64
find . -type f -exec stat -f "%m%t%Sm %N" '{}' \; | sort -rn | head -20 | cut -f2-