如何在 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

我想,这对 datexxd 命令不会给我预期的结果。

你能告诉我如何以这样的二进制表示形式获取当前时间,我将在 5 月 15 日 02:09:25 得到 1010101010101010101010101010101 吗?


更新:

好的,所以使用这个在线转换器 (http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html) 我能够得到合理数量的数字。 如何使用 bash 实现同样的效果?

试试这个:

echo "obase=2;$(date +%s)" |bc