与 Linuxae 的输出不同2022-11-07 16:23
,FreeBSDwho
命令输出Nov 7 16:23
。如何who
全局或仅在命令持续时间内更改输出中的日期格式?
who
FreeBSD 13.1-p3 上 POSIX 区域设置的示例输出(日期格式随区域设置而变化):
me pts/1 Nov 7 13:06 (192.168.1.107 via mosh [1964])
me pts/2 Nov 7 13:07 (tmux(1988).%0)
me pts/3 Nov 7 13:07 (tmux(1988).%1)
me pts/4 Nov 7 13:07 (tmux(1988).%2)
me pts/5 Nov 7 13:08 (tmux(1988).%3)
me pts/7 Nov 8 07:09 (192.168.1.103 via mosh [2059])
me pts/8 Nov 7 13:08 (tmux(1988).%4)
请注意,虽然日期格式随区域设置而变化,但输出中的日期字符串是用创建的strftime()
使用%e %b %R
或%b %e %R
作为格式字符串,这使得不可能“仅使用另一个区域设置”。
答案1
你是对的,“who”中的日期字符串输出被硬编码为源代码中的那些格式字符串,并且任何区域设置更改都不会改变它。
调整它们的唯一方法是修改源代码并使用您选择的格式重新构建“who”(或者使用一些包装脚本围绕 who 重写它们,但这会很混乱)