Minha equipe está trabalhando em um ambiente de CI.
Um ko
arquivo chamado x.ko
, é sempre gerado a partir do ambiente de CI em um horário regular todos os dias e seu tipo é ELF 64-bit LSB relocatable
.
Hoje, descobri que o tipo desse ko
arquivo se tornou data
.
Estou tentando descobrir o motivo.
Eu tento cat
este ko
arquivo, mas a saída não é nada. Então, eu tento cat -et x.ko
, e isso me dá muito ^@^@^@^@^@^@^@^@^@^@^@^@^@^@
...
Você sabe o que ^@^@^@^@^@^@^@^@^@
significa?
Cuidado, cat não é a ferramenta perfeita para exibir dados que podem ser binários.
Uma ferramenta unix simples é od ( dump octal ).
Um exemplo de od -c -tx1
para que você possa ver que o retorno de carro \n
Seu arquivo está cheio de nulos, em vez de vazio. Um regular
cat
imprimirá os nulos na saída padrão, mas seu terminal geralmente os exibirá como nada, enquantocat -v
os representa como^@
.^@
representa um byte nulo porque o valor de byte de "@" (0x40 ou 64) x ou 64 (flip bit 7) é zero.Por que de repente está cheio de nulos, não podemos dizer a partir daqui.
Esta pergunta relacionada pode ser informativa sobre a representação de acento circunflexo: As sequências de escape ASCII e os pares de caracteres de controle fazem parte de um padrão?