Provided by:
manpages-pl_20060617-3_all 
NAZWA
magic - plik liczb magicznych polecenia file
OPIS
Ta strona podrcznika systemowego opisuje format pliku magicznego,
uywanego przez polecenie file(1) w wersji 3.37. Polecenie file
rozpoznaje typ pliku, korzystajc (poza innymi metodami) z testu,
polegajcego na sprawdzeniu, czy plik nie rozpoczyna si od pewnej liczby
magicznej. Plik /usr/share/misc/magic okrela jakie liczby sprawdza i
jakie komunikaty drukowa w wypadku znalezienia okrelonej liczby
magicznej oraz dodatkowe dane, ktore maj zosta pobrane z pliku.
Kady wiersz pliku okrela test, ktore ma by wykonany. Test porownuje
dane, rozpoczynajce si przy okrelonym przesuniciu wzgldem pocztku pliku
z 1, 2 lub 4-bajtow wartoci numeryczn lub lacuchem. Jeli test zakoczy
si pomylnie, wypisywany jest komunikat. Wiersz sklada si z nastpujcych
pol:
offset Liczba, okrelajca w bajtach przesunicie wzgldem pocztku pliku,
przy ktorym naley szuka testowanych danych.
typ Typ testowanych danych. Dopuszczalne wartoci to:
byte Warto jednobajtowa.
short Warto dwubajtowa (w wikszoci systemow) w natywnej
kolejnoci bajtow maszyny.
long Warto czterobajtowa (w wikszoci systemow) w natywnej
kolejnoci bajtow maszyny.
string Lacuch bajtow. Po specyfikacji typu lacucha moe
opcjonalnie wystpi /[Bbc]*. Znacznik ,,B'' kondensuje
biale znaki w testowanym tekcie, ktory musi zawiera
co najmniej jeden bialy znak. Jeli liczba magiczna
zawiera "n" kolejnych bialych znakow, to aby nastpilo
dopasowanie, testowany tekst musi zawiera co najmniej
"n" kolejnych bialych znakow. Znacznik ,,b'' powoduje
traktowanie wszystkich bialych znakow w testowanym
tekcie jako opcjonalne. Wreszcie, znacznik ,,c''
okrela dopasowanie ignorujce wielko liter: male
litery w liczbie magicznej pasuj zarowno do malych,
jak i do wielkich liter w testowanym tekcie, podczas
gdy wielkie litery w liczbie magicznej pasuj tylko do
wielkich liter.
date Czterobajtowa warto, interpretowana jako data
uniksowa.
ldate Czterobajtowa warto, interpretowana jako data w stylu
uniksowym, ale interpretowana jako czas lokalny, a
nie UTC.
beshort Warto dwubajtowa (w wikszoci systemow) w grubokocej
(big-endian) kolejnoci bajtow.
belong Warto czterobajtowa (w wikszoci systemow) w
grubokocej kolejnoci bajtow.
bedate Warto czterobajtowa (w wikszoci systemow) w
grubokocej kolejnoci bajtow, interpretowana jako data
uniksowa.
leshort Warto dwubajtowa (w wikszoci systemow) w ostrokocej
(little-endian) kolejnoci bajtow.
lelong Warto czterobajtowa (w wikszoci systemow) w
ostrokocej kolejnoci bajtow.
ledate Warto czterobajtowa (w wikszoci systemow) w
ostrokocej kolejnoci bajtow, interpretowana jako data
uniksowa.
leldate Warto czterobajtowa (w wikszoci systemow) w
ostrokocej kolejnoci bajtow, interpretowana jako data
w stylu uniksowym, ale interpretowana jako czas
lokalny, a nie UTC.
Typy numeryczne mog wystpowa w parze z (nastpujcym po nich) znakiem & i
wartoci numeryczn wskazujc, e dana warto ma by poddana operacji AND z
zadan wartoci numeryczn przed dokonaniem porownania. Poprzedzenie typu
przez u wskazuje, e porownane wartoci powinny by bez znaku.
test Warto, ktore ma by porownywana z wartoci z pliku. Jeli typ jest
numeryczny, to warto jest podawana w postaci zgodnej z jzykiem
C. Jeli typ jest lacuchowy, to warto jest podawana jako lacuch
jzyka C z dozwolonymi znakami specjalnymi (np. \n dla nowej
linii).
Wartoci numeryczne mog by poprzedzone znakami okrelajcymi
operacj, jaka ma zosta wykonana. Znakiem operacji moe by =,
okrelajcy, e warto z pliku musi si rowna wartoci podanej, <,
okrelajcy, e warto z pliku musi by mniejsza od podanej, >,
okrelajcy, e warto z pliku musi by wiksza od podanej, &,
okrelajcy, e warto z pliku musi mie wszystkie bity, ktore s
ustawione w podanej wartoci, ^, okrelajcy, e warto z pliku musi
mie wyzerowane wszystkie bity, ktore s ustawione w podanej
wartoci, lub x, okrelajcy, e pasowa moe dowolna warto. Jeli znak
operacji jest pominity, uywany jest =.
Wartoci numeryczne s podawane w postaci zgodnej z jzykiem C, np.
13 to liczba dziesitna, 013 to liczba osemkowa, 0x13 to liczba
szesnastkowa.
Dla wartoci lacuchowych lacuch bajtow z pliku musi odpowiada
podanemu lacuchowi bajtow. Do lacuchow mog by stosowane
operatory =, < i > (lecz nie &). Dlugo, uywana do porownywania
jest dlugoci argumentu lacuchowego z pliku magicznego. Znaczy
to, e wiersz mona dopasowa do dowolnego lacucha i wypisa go,
stosujc >\0 (poniewa wszystkie lacuchy s wiksze od lacucha
zerowego).
komunikat
Komunikat, wypisywany po pomylnym dopasowaniu. Jeli lacuch
zawiera specyfikacj formatu printf(3) to warto z pliku jest
wypisywana (po odpowiednim maskowaniu) przy uyciu komunikatu
jako lacucha formatujcego.
Niektore formaty plikow zawieraj dodatkowe dane, ktore maj by wypisane
razem z danym typem pliku. Wiersz, rozpoczynajcy si od znaku > oznacza
dodatkowe testy i komunikaty. Liczba > w linii okrela poziom testu;
wiersz bez > jest na poziomie 0. Kady wiersz w poziomie n+1 jest pod
kontrol wiersza w poziomie n, poprzedzajcego go najbliej w pliku
magicznym. Jeli test wiersza na poziomie n si powiedzie, dokonywane bd
dalsze testy na poziomach n+1. Proces ten koczy nastpny wiersz na
poziomie n. Jeli pierwszy znak za ostatnim > to (, to lacuch za
nawiasem jest interpretowany jako porednie przesunicie. Znaczy to, e
liczba po nawiasie sluy jako przesunicie w pliku. Przy tym przesuniciu
odczytywana jest warto uywana nastpnie jako przesunicie w pliku.
Przesunicia porednie s postaci: (x[.[bslBSL]][+-][y]). Warto x jest
uywana jako przesunicie w pliku. Nastpnie przy tym przesuniciu
odczytywany jest z niego bajt, slowo lub podwojne slowo, zalenie od
specyfikatora typu [bslBSL]. Wielkie litery oznaczaj liczby jako
wartoci grubokoce (big-endian), podczas gdy male litery oznaczaja
wartoci (ostrokoce) little-endian. Do liczby tej dodawana jest warto y,
a wynik sluy jako przesunicie w pliku. Domylnym typem przesunicia jest
long.
Czasami dokladne przesunicie nie jest znane, gdy moe ono zalee od
dlugoci poprzednich pol. Mona poda przesunicie wzgldem koca ostatniego
pola wyszego poziomu (oczywicie mona to wykona tylko przy testach na
podpoziomach, tj. testach rozpoczynajcych si od >). Takie wzgldne
przesunicie podawane jest za pomoc przedrostka & w przesunicia.
B/LDY
Formaty long, belong, lelong, short, beshort, leshort, date, bedate i
ledate zale od systemu; moe powinny by podawane jako liczba bajtow (2B,
4B, itd), gdy rozpoznawane pliki zwykle pochodz z systemu, gdzie
dlugoci s niezmienne.
Nie ma (obecnie) obslugi dla korzystania z danych o okrelonej kocowoci
(endianness) przy przesuniciach porednich.
ZOBACZ TAKE
file(1) - polecenie, ktora czyta ten plik.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
Ogolnie dostpne MAGIC(5)