ls 列出按时间戳日期排序的目录并按文件名附录中的日期排序,结果不太令人满意

ls 列出按时间戳日期排序的目录并按文件名附录中的日期排序,结果不太令人满意

对于目录列表我总是使用类似命令

ls -la --time-style=long-iso <directoryname>

一切都已尽善尽美。

但在某些情况下,我会在文件名后附加日期时间后缀。当我备份 bash 历史文件时尤其如此。一行 ls 输出可能如下所示:

-rw-r--r-- 1 root root 1234567  2023-10-23 20:39  /root/.bash_history.WE_2023-10-23_23-13-10_CEST

例如,当我在开发 bash 脚本时,时间戳显示 20:39 的状态在 $HISTFILE 中,而备份是使用我在 23:13:10 对脚本的测试运行编写的。

还行吧。

但经过三次测试运行后, ls 的输出如下:

-rw-r--r-- 1 root root 1234567  2023-10-23 20:39  /root/.bash_history.WE_2023-10-23_23-13-10_CEST

-rw-r--r-- 1 root root 1234567  2023-10-23 20:39  /root/.bash_history.WE_2023-10-23_23-23-10_CEST

-rw-r--r-- 1 root root 1234567  2023-10-23 20:39  /root/.bash_history.WE_2023-10-23_23-33-10_CEST

我几十年来一直存在的问题是 ls 对日期时间进行排序的顺序。

我希望将最新的日期时间放在列表的第一位。

ls 带有选项 -t 可以按时间戳排序。

但是如果有许多文件具有相同的时间戳,则 ls 会按照错误的顺序列出该集群:最旧的文件名和日期在最前面。

如果 ls 除了原始排序键时间戳外还观察文件创建日期和时间,则 ls 可以正确排序。但是 ls 却不能。

今天我再次尝试寻找解决方案,但没有成功。

至少,选项 -v 不会导致成功。

并且通过实用程序排序提供 ls 的输出,也不能给出正确的结果。

是的,如果我只考虑相同时间戳的集群,那么我可以反转顺序。但副作用是其他事情会变得混乱。例如,没有文件名附加的文件“/root/.bash_history”被 ls 写为顶行,即第一行。我尝试了这些措施,这个文件名位于列表中间的某个位置。

我在互联网上搜索过,发现了很多关于按日期排序的文章,但没有一篇解决我的问题。

有没有其他人遇到过这个问题,请问有已知的解决方案吗?

问候。

相关内容