67

ls -l -t用来获取按时间排序的目录中的文件列表。

我想将搜索结果限制为列表中的前 2 个文件。
这可能吗?
我已经尝试过 grep 并且我很挣扎。

4

5 回答 5

113

您可以将其通过管道传输到head

ls -l -t | head -3

将为您提供前 3 行(2 个文件和总数)。

这只会给你前两行文件,跳过大小行:

ls -l -t | tail -n +2 | head -2

tail剥离第一行,然后head输出接下来的 2 行。

于 2012-05-09T16:26:22.087 回答
10

为避免处理顶部输出行,您可以反转排序并获取最后两行

ls -ltr | tail -2

这是相当安全的,但取决于您在找到这两个文件条目后将如何处理它们,您应该阅读Parsing ls关于使用ls获取文件和文件信息的问题。

于 2012-05-09T16:32:58.730 回答
8

或者你可以试试这个

ls -1 -t | head -2

-1 开关跳过标题行。

于 2015-09-30T12:55:23.667 回答
3

您可以使用该head命令仅获取前两行输出:

ls -l -t | head -2
于 2012-05-09T16:24:26.813 回答
0

你必须通过头部管道。

ls -l -t | 头-n 3

将输出前两个结果。

于 2012-05-09T16:25:22.993 回答