2011-08-29 12 views
20

Komenda unix file używa "magicznej" bazy danych plików do określenia, jakiego rodzaju danych plik zawiera, niezależnie od nazwy pliku lub rozszerzenia.Tworzenie niestandardowej bazy danych magicznych

Potrzebuję spreparować moją niestandardową magiczną bazę danych do celów testowych, ale nie mogę znaleźć sposobu jej utworzenia.

Odpowiedz

14

Możesz wpisać man magic, aby uzyskać opis tworzenia własnego pliku magicznego. Następnie użyj file -C -m <your magic file>, aby go skompilować, i file -m <your magic file>, aby go użyć.

+0

jeśli masz uprawnienia roota, możesz edytować magię lub magic.mime w razie potrzeby, zamiast tworzyć nowy plik ponownie: – yitwail

+0

ponownie, jak to pomaga? Jeśli jest w instrukcji, możesz podać przykład? –

+0

@PauloNeves szczegóły składni nie są banalne, ponieważ strona podręcznika (lub [link do niej] (https://linux.die.net/man/5/magic)) jest znacznie lepsza. "Każda linia pliku określa test, który ma zostać wykonany, test porównuje dane rozpoczynające się od określonego przesunięcia w pliku z wartością bajtu, łańcuchem lub wartością liczbową. Jeśli test się powiedzie, drukowany jest komunikat. składa się z następujących pól: offset, typ, test, komunikat ". cweiske ma przykład jako odpowiedź poniżej. –

5

W tym artykule: https://linux.die.net/man/1/file (lub man file)

wyszukiwania dla magic.mgc dla wyjaśnienia

Informacje identyfikujące te pliki są odczytywane ze skompilowanego pliku magicznego /usr/share/file/magic.mgc lub /usr/share/file/magic, jeśli plik kompilacji nie istnieje. Ponadto plik będzie wyglądać w $ HOME/.magic.mgc, lub $HOME/.magic dla magicznych wpisów.

+1

W jaki sposób pomaga to plakatowi stworzyć niestandardową magiczną bazę danych? – Gray

1

Używam następujący pliku magicznego teraz dla moich testów jednostkowych:

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

Dzięki niemu każdy plik php (począwszy <?php) dostanie typ MIME text/x-unittest.

Powiązane problemy