如何在 Bash 中以二进制表示形式打印 UNIX 时间
How to print the UNIX time in a binary representation in Bash
我最近看到消息,5 月 15 日 02:09:25 Unix 时间将等于 1010101010101010101010101010101
二进制表示。
我想知道它是不是假的,所以我试图以二进制形式获取当前的 Unix 时间。我想到了这样一个简单的提示:
$ date +%s | xxd -b
我得到了这样的结果:
0000000: 00110001 00110100 00110011 00110001 00110100 00110110 143146
0000006: 00110010 00110100 00110100 00110010 00001010 2442.
总而言之,我得到了:
0011000100110100001100110011000100110100001101100011001000110100001101000011001000001010
但它显示的数字比我预期的多。所有其他变体也不令人满意,例如 $ date "+%v %H:%M:%S" | xxd -b
或 $ date | xxd -b
。
我想,这对 date
和 xxd
命令不会给我预期的结果。
你能告诉我如何以这样的二进制表示形式获取当前时间,我将在 5 月 15 日 02:09:25 得到 1010101010101010101010101010101
吗?
更新:
好的,所以使用这个在线转换器 (http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html) 我能够得到合理数量的数字。 如何使用 bash 实现同样的效果?
试试这个:
echo "obase=2;$(date +%s)" |bc
我最近看到消息,5 月 15 日 02:09:25 Unix 时间将等于 1010101010101010101010101010101
二进制表示。
我想知道它是不是假的,所以我试图以二进制形式获取当前的 Unix 时间。我想到了这样一个简单的提示:
$ date +%s | xxd -b
我得到了这样的结果:
0000000: 00110001 00110100 00110011 00110001 00110100 00110110 143146
0000006: 00110010 00110100 00110100 00110010 00001010 2442.
总而言之,我得到了:
0011000100110100001100110011000100110100001101100011001000110100001101000011001000001010
但它显示的数字比我预期的多。所有其他变体也不令人满意,例如 $ date "+%v %H:%M:%S" | xxd -b
或 $ date | xxd -b
。
我想,这对 date
和 xxd
命令不会给我预期的结果。
你能告诉我如何以这样的二进制表示形式获取当前时间,我将在 5 月 15 日 02:09:25 得到 1010101010101010101010101010101
吗?
更新:
好的,所以使用这个在线转换器 (http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html) 我能够得到合理数量的数字。 如何使用 bash 实现同样的效果?
试试这个:
echo "obase=2;$(date +%s)" |bc