Um número mágico é uma sequência de bytes usada em todos os arquivos de um determinado formato, geralmente em uma determinada posição (geralmente no início). Como todos os arquivos nesse formato específico têm essa sequência de bytes específica nessa posição específica, e a maioria dos arquivos em outros formatos não o possui, o número mágico é uma maneira de reconhecer em que formato um arquivo se encontra.
Aqui, este conceito é aplicado a um formato de sistema de arquivos. Por exemplo, um sistema de arquivos ext2 / ext3 / ext4 sempre possui os bytes 0x53 0xEF
nas posições 1080–1081. Um sistema de arquivos reiserfs sempre tem ReIsErFs
começando na posição 65588 (ou ReIsEr2Fs
, etc., em versões mais recentes). Outros sistemas de arquivos têm números mágicos semelhantes. As ferramentas do sistema de arquivos verificam a presença do número mágico (e possivelmente outras pistas) para garantir que você não as tenha lançado acidentalmente em dados organizados em um formato com o qual não possam lidar e que possam ser danificados. Se você alterar o número mágico em um sistema de arquivos, é provável que as ferramentas comuns se recusem a tocá-lo; as ferramentas de reparo podem ser mais inteligentes e tratar um número mágico ruim como apenas uma das coisas que podem ser quebradas.
O comando file
reconhece os arquivos com base em seus números mágicos. Você pode executar file -s /dev/sda1
para ver o que pensa estar na partição /dev/sda1
. Suas decisões são baseadas em um banco de dados normalmente encontrado em /etc/magic
ou /usr/share/misc/magic
. Comandos específicos podem usar diferentes números mágicos para reconhecer os formatos de arquivo com os quais eles podem lidar.