linux locate命令按日期排序

mca*_*eaa 5 linux command-line locate

linux locate 命令非常适合快速查找文件。

我的问题:我们如何使用 locate 命令以便按日期/时间顺序返回结果?

oni*_*ake 6

只要文件名中没有空格,这就会起作用,但如果文件太多,则会出错(请参阅http://www.gnu.org/software/coreutils/faq/#Argument-list-too-long):

$ ls -td $(locate sh)
bash: /bin/ls: Argument list too long
Run Code Online (Sandbox Code Playgroud)

这甚至适用于文件名中的空格或其他字符,但不能正确排序太多文件:

locate something -0 | xargs -0 ls -ltd
Run Code Online (Sandbox Code Playgroud)

以下将始终有效(尽管可能需要一段时间):

locate something -0 | xargs -0 stat -c'%Y %n' | sort -n
Run Code Online (Sandbox Code Playgroud)


Red*_*ick 3

怎么样:

ls -td $(locate something)
Run Code Online (Sandbox Code Playgroud)

或者

ls -td1 $(locate something)
Run Code Online (Sandbox Code Playgroud)