ls 命令的前两个结果

问题描述 投票:0回答:6

我正在使用

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

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

linux search limit ls
6个回答
121
投票

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

head

ls -l -t | head -3

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

这只会为您提供文件的前 2 行,跳过大小行:

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

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


11
投票

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

ls -ltr | tail -2

这非常安全,但是根据找到这两个文件条目后您将如何处理它们,您应该阅读 Parsing ls 了解使用

ls
获取文件和文件信息的问题。

如果您只想要文件 names 而不需要从长格式中解析它们,您可以使用

-1
而不是
-l
,并且
-1
还会省略标题,因此您无需反转种类。这就变成了

ls -1t | head -2

8
投票

或者你可以尝试这个

ls -1 -t | head -2

-1 开关跳过标题行。


3
投票

您可以使用

head
命令仅获取前两行输出:

ls -l -t | head -2

1
投票

你必须通过头部管道。

ls -l -t |头-n 3

将输出前两个结果。


1
投票

试试这个:

ls -td -- * | head -n 2
© www.soinside.com 2019 - 2024. All rights reserved.