我正在使用
ls -l -t
获取目录中按时间排序的文件列表。
我想将搜索结果限制为列表中的前 2 个文件。
这可能吗?
我尝试过 grep 但很挣扎。
您可以将其通过管道传输到
head
:
ls -l -t | head -3
将为您提供前 3 行(2 个文件和总数)。
这只会为您提供文件的前 2 行,跳过大小行:
ls -l -t | tail -n +2 | head -2
tail
剥离第一行,然后 head
输出接下来的 2 行。
为了避免处理顶部输出行,您可以反转排序并获取最后两行
ls -ltr | tail -2
这非常安全,但是根据找到这两个文件条目后您将如何处理它们,您应该阅读 Parsing ls 了解使用
ls
获取文件和文件信息的问题。
如果您只想要文件 names 而不需要从长格式中解析它们,您可以使用
-1
而不是 -l
,并且 -1
还会省略标题,因此您无需反转种类。这就变成了
ls -1t | head -2
或者你可以尝试这个
ls -1 -t | head -2
-1 开关跳过标题行。
您可以使用
head
命令仅获取前两行输出:
ls -l -t | head -2
你必须通过头部管道。
ls -l -t |头-n 3
将输出前两个结果。
试试这个:
ls -td -- * | head -n 2