Linux按日期排序"ls -al"输出

Min*_*ius 0 linux sorting bash

我想根据日期对"ls -al"命令的输出进行排序.我可以使用命令轻松地为一列执行此操作:

$ ls -al | sort -k6 -M -r
Run Code Online (Sandbox Code Playgroud)

但是如何同时为第6和第7列做到这一点?命令:

$ ls -al | sort -k6 -M -r | sort -k7 -r
Run Code Online (Sandbox Code Playgroud)

打印出我不明白的结果.

最终目标是查看最近修改过的所有文件(或vv).

以下是要排序的数据和使用的命令的附加示例: 在此输入图像描述

Wil*_*ell 10

使用sort,如果指定-k6,则键从字段6开始并延伸到行的末尾.要截断它并仅使用字段6,您应该指定-k6,6.要对多个键进行排序,只需指定-k多次.此外,您需要仅将M修饰符应用于月份,并将n修饰符应用于该日期.所以:

 ls -al | sort -k 6,6M -k 7,7n -r 
Run Code Online (Sandbox Code Playgroud)

请注意查尔斯关于滥用ls的评论.它的输出无法可靠地解析.


Ami*_*esh 9

最终目标是查看最近修改的所有文件

ls -t
Run Code Online (Sandbox Code Playgroud)

或(反向,最近在底部):

ls -tr
Run Code Online (Sandbox Code Playgroud)

ls 手册页更详细地描述了这一点,并列出了其他选项。