The linux locate command is great at finding files quicky.
My question: how can we use the locate command so that the results are returned in date/time order?
This works as long as there are not spaces in the filenames, but errors if there are too many files (see http://www.gnu.org/software/coreutils/faq/#Argument-list-too-long):
$ ls -td $(locate sh)
bash: /bin/ls: Argument list too long
This will work even with spaces or other characters in filenames, but doesn't sort correctly with too many files:
locate something -0 | xargs -0 ls -ltd
The following will always work (although it might take awhile):
locate something -0 | xargs -0 stat -c'%Y %n' | sort -n
stat
was ten times faster than piping to ls
for me, although it doesn't show all the ls -l
information, obviously.
locate SomeSearchTerm -0 | xargs -0 stat -c'%Y#%y %n' | sort -n | cut -d"#" -f2 | sed "s/\.[0-9]*//"
How about:
ls -td $(locate something)
or
ls -td1 $(locate something)