Linux按日期排序“ls -al”输出

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

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

$ ls -al | sort -k6 -M -r

但是如何同时为第6列和第7列执行此操作?命令:

$ ls -al | sort -k6 -M -r | sort -k7 -r

打印出我不明白的结果。

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

以下是要排序的数据和使用的命令的附加示例:

linux bash sorting
2个回答
10
投票

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

 ls -al | sort -k 6,6M -k 7,7n -r 

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


4
投票

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

ls -t

或(反之,最近底部):

ls -tr

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

© www.soinside.com 2019 - 2024. All rights reserved.