如何在目录中列出(ls)最后修改的5个文件?

时间:2013-03-28 20:17:15

标签: linux list terminal limit ls

我知道ls -t会按修改时间列出所有文件。但是,我如何才能将这些结果仅限于最后的 n 文件?

5 个答案:

答案 0 :(得分:195)

尝试使用头部或尾部。如果您想要最近修改的5个文件:

ls -1t | head -5

-1(这是一个)每行说一个文件,头部说前五个条目。

如果你想要最后5次尝试

ls -1t | tail -5

答案 1 :(得分:12)

使用tail命令:

ls -t | tail -n 5

答案 2 :(得分:8)

接受的答案仅列出文件名,但要获得前5个文件,也可以使用:

ls -lht | head -6

其中:

-l以列表格式输出

-h使输出具有人类可读性(即文件大小以kb,mb等显示)

-t通过将最近修改过的文件放在第一位来排序输出

head -6将显示5个文件,因为ls会在第一行输出中打印块大小。

我认为这是一种稍微优雅且可能更有用的方法。

示例输出:

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv

答案 3 :(得分:2)

ls -t按创建时间列出文件而不是上次修改时间。如果要按上次修改时间从上到下(从上到下)列出文件,请使用ls -ltc。因此列出最后一个n:ls -ltc | head ${n}

答案 4 :(得分:2)

默认情况下,ls -t将输出从最新到最旧进行排序,因此要使用的命令组合取决于您希望输出排序的方向。

对于从最新到最早的5个最新文件,请使用head获取前5行输出:

ls -t | head -n 5

对于从最新到最新的5个文件,请使用-r开关来反转ls的排序顺序,并使用tail进行最后5行输出:

ls -tr | tail -n 5