猫什么都不显示

Yve*_*ves 7 files cat file-types

我的团队正在开发 CI 环境。

一个ko名为的文件x.ko总是在每天的固定时间从 CI 环境中生成,其类型为ELF 64-bit LSB relocatable.

今天发现这个ko文件的类型变成了data.

我正在努力找出原因。

我尝试cat这个ko文件,但输出什么都没有。然后,我尝试cat -et x.ko,它给了我很多^@^@^@^@^@^@^@^@^@^@^@^@^@^@......

你知道什么^@^@^@^@^@^@^@^@^@意思吗?

Ech*_*444 13

请注意,cat不是显示二进制数据的完美工具。

一个简单的 unix 工具是od(八进制转储)。

的例子OD -c -tx1

root@server:~# od -c -tx1 /etc/passwd | head
0000000   r   o   o   t   :   x   :   0   :   0   :   r   o   o   t   :
         72  6f  6f  74  3a  78  3a  30  3a  30  3a  72  6f  6f  74  3a
0000020   /   r   o   o   t   :   /   b   i   n   /   b   a   s   h  \n
         2f  72  6f  6f  74  3a  2f  62  69  6e  2f  62  61  73  68  0a
0000040   d   a   e   m   o   n   :   x   :   1   :   1   :   d   a   e
         64  61  65  6d  6f  6e  3a  78  3a  31  3a  31  3a  64  61  65
0000060   m   o   n   :   /   u   s   r   /   s   b   i   n   :   /   u
         6d  6f  6e  3a  2f  75  73  72  2f  73  62  69  6e  3a  2f  75
0000100   s   r   /   s   b   i   n   /   n   o   l   o   g   i   n  \n
         73  72  2f  73  62  69  6e  2f  6e  6f  6c  6f  67  69  6e  0a
Run Code Online (Sandbox Code Playgroud)

所以你可以看到回车\n


Mic*_*mer 12

您的文件充满了空值,而不是空的。常规cat会将空值打印到标准输出,但您的终端通常会将它们显示为空,而将它们cat -v表示为^@. ^@表示空字节,因为“@”(0x40 或 64)xor 64(翻转位 7)的字节值为零。

为什么它突然充满了空值,我们从这里无法判断。

这个相关问题可能提供有关插入符号表示的信息:ASCII 转义序列和控制字符配对是否是标准的一部分?