搜索包含字符串的文件并列出按修改日期排序的名称

Emi*_*aga 3 grep find date sort files

我使用此命令查找目录中包含特定字符串的所有文件:

grep -lir "string" path_to directory
Run Code Online (Sandbox Code Playgroud)

例子

grep -lir "users" /var/www/mysite
Run Code Online (Sandbox Code Playgroud)

此命令显示指定目录中包含字符串“users”的所有文件。但是,我想按修改日期降序对它们进行排序;最新到最旧。

有什么帮助吗?

小智 5

首先我们使用该Z选项,然后在另一端带有 -0 选项的 xargs 将捕获文件名并统计它们,排序并删除计时信息以显示排序的最新第一个列表。

 grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-
Run Code Online (Sandbox Code Playgroud)