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

新手上路,请多包涵

我知道 ls -t 会按修改时间列出所有文件。但是我怎样才能将这些结果限制在最后 n 个 文件中呢?

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 538
2 个回答

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

 ls -1t | head -5

-1(这是一个)表示每行一个文件,而头部表示取前 5 个条目。

如果你想要最后 5 次尝试

ls -1t | tail -5

原文由 Paul Rubel 发布,翻译遵循 CC BY-SA 3.0 许可协议

接受的答案仅列出文件名,但要获得前 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

原文由 Sameen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题