2011-08-29 13 views
20

Il comando UNIX file utilizza un database file "magico" per determinare quale tipo di dati di un file contiene, indipendentemente dal nome del file o estensione.Come creare un database di file magia personalizzato

Ho bisogno di mestiere il mio database magia personalizzato a scopo di test, ma non riesco a trovare il modo di crearne uno.

risposta

14

È possibile man magic per una descrizione su come creare il proprio file magico. Quindi utilizzare file -C -m <your magic file> per compilarlo e file -m <your magic file> per utilizzarlo.

+0

se si dispone del privilegio di root, è possibile modificare magic o magic.mime come necessario piuttosto che creare un nuovo file – yitwail

+0

come può essere d'aiuto? Se è nel manuale puoi fare un esempio? –

+0

@PauloNeves i dettagli della sintassi non sono banali, come la pagina man (o un [link ad esso] (https://linux.die.net/man/5/magic)) è molto meglio. "Ogni riga del file specifica un test da eseguire: un test confronta i dati che iniziano con un determinato offset nel file con un valore di byte, una stringa o un valore numerico, se il test riesce, viene stampato un messaggio. consiste dei seguenti campi: offset, tipo, test, messaggio ". cweiske ha un esempio come risposta qui sotto. –

5

In questo articolo: https://linux.die.net/man/1/file (o man file)

ricerca di magic.mgc per la spiegazione

Le informazioni di identificazione di questi file viene letto dal /usr/share/file/magic.mgc magic file compilato oppure /usr/share/file/magic se il file di compilazione non esiste. Inoltre il file apparirà in $ HOME/.magic.mgc, o $HOME/.magic per le voci magiche.

+1

In che modo questo aiuta il poster a creare un database magico personalizzato? – Gray

1

Sto usando il seguente file magia ora mio test di unità:

0  search/1/c  =<?php     PHP script text 
!:mime text/x-unittest 

Con esso, ogni file php (a cominciare da <?php) otterrà il tipo MIME text/x-unittest.

Problemi correlati