Provided by: manpages-pl_0.7-1_all bug

NAZWA

       magic - plik liczb magicznych polecenia file

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Ta  strona  podręcznika  systemowego opisuje format pliku magicznego, używanego przez polecenie file(1) w
       wersji  3.37.  Polecenie  file  rozpoznaje  typ  pliku,  korzystając  (poza  innymi  metodami)  z  testu,
       polegającego   na   sprawdzeniu,   czy  plik  nie  rozpoczyna  się  od  pewnej  liczby  magicznej.   Plik
       /usr/share/misc/magic określa jakie liczby sprawdzać i jakie komunikaty drukować  w  wypadku  znalezienia
       określonej liczby magicznej oraz dodatkowe dane, które mają zostać pobrane z pliku.

       Każdy  wiersz  pliku  określa  test,  które ma być wykonany. Test porównuje dane, rozpoczynające się przy
       określonym przesunięciu względem początku pliku z 1, 2 lub 4-bajtową wartością numeryczną lub  łańcuchem.
       Jeśli test zakończy się pomyślnie, wypisywany jest komunikat. Wiersz składa się z następujących pól:

       offset   Liczba,  określająca  w  bajtach przesunięcie względem początku pliku, przy którym należy szukać
                testowanych danych.

       typ      Typ testowanych danych. Dopuszczalne wartości to:

                byte     Wartość jednobajtowa.

                short    Wartość dwubajtowa (w większości systemów) w natywnej kolejności bajtów maszyny.

                long     Wartość czterobajtowa (w większości systemów) w natywnej kolejności bajtów maszyny.

                string   Łańcuch bajtów. Po  specyfikacji  typu  łańcucha  może  opcjonalnie  wystąpić  /[Bbc]*.
                         Znacznik  ,,B''  kondensuje  białe  znaki  w testowanym tekście, który musi zawierać co
                         najmniej jeden biały znak. Jeśli liczba magiczna zawiera "n" kolejnych białych  znaków,
                         to  aby  nastąpiło dopasowanie, testowany tekst musi zawierać co najmniej "n" kolejnych
                         białych znaków.  Znacznik  ,,b''  powoduje  traktowanie  wszystkich  białych  znaków  w
                         testowanym  tekście  jako  opcjonalne.  Wreszcie,  znacznik  ,,c''  określa dopasowanie
                         ignorujące wielkość liter: małe litery w liczbie magicznej pasują  zarówno  do  małych,
                         jak  i  do  wielkich  liter  w testowanym tekście, 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  większości  systemów)  w  grubokońcej  (big-endian) kolejności
                         bajtów.

                belong   Wartość czterobajtowa (w większości systemów) w grubokońcej kolejności bajtów.

                bedate   Wartość  czterobajtowa  (w  większości  systemów)  w  grubokońcej  kolejności   bajtów,
                         interpretowana jako data uniksowa.

                leshort  Wartość  dwubajtowa  (w  większości  systemów) w ostrokońcej (little-endian) kolejności
                         bajtów.

                lelong   Wartość czterobajtowa (w większości systemów) w ostrokońcej kolejności bajtów.

                ledate   Wartość  czterobajtowa  (w  większości  systemów)  w  ostrokońcej  kolejności   bajtów,
                         interpretowana jako data uniksowa.

                leldate  Wartość   czterobajtowa  (w  większości  systemów)  w  ostrokońcej  kolejności  bajtów,
                         interpretowana jako data w stylu uniksowym, ale interpretowana jako czas lokalny, a nie
                         UTC.

       Typy  numeryczne  mogą  występować  w  parze  z  (następującym  po nich) znakiem & i wartością numeryczną
       wskazującą, że dana wartość ma być poddana operacji AND z zadaną wartością  numeryczną  przed  dokonaniem
       porównania. Poprzedzenie typu przez u wskazuje, że porównane wartości powinny być bez znaku.

       test   Wartość,  które ma być porównywana z wartością z pliku. Jeśli typ jest numeryczny, to wartość jest
              podawana w postaci zgodnej z językiem C. Jeśli typ jest łańcuchowy, to wartość jest podawana  jako
              łańcuch języka C z dozwolonymi znakami specjalnymi (np. \n dla nowej linii).

              Wartości  numeryczne mogą być poprzedzone znakami określającymi operację, jaka ma zostać wykonana.
              Znakiem operacji może być =, określający, że wartość z pliku musi się równać wartości podanej,  <,
              określający,  że  wartość z pliku musi być mniejsza od podanej, >, określający, że wartość z pliku
              musi być większa od podanej, &, określający, że wartość z pliku musi mieć wszystkie bity, które są
              ustawione  w  podanej  wartości, ^, określający, że wartość z pliku musi mieć wyzerowane wszystkie
              bity, które są ustawione w podanej wartości, lub x, określający, że pasować może dowolna  wartość.
              Jeśli znak operacji jest pominięty, używany jest =.

              Wartości  numeryczne są podawane w postaci zgodnej z językiem C, np.  13 to liczba dziesiętna, 013
              to liczba ósemkowa, 0x13 to liczba szesnastkowa.

              Dla wartości łańcuchowych łańcuch bajtów z pliku musi odpowiadać podanemu  łańcuchowi  bajtów.  Do
              łańcuchów  mogą  być  stosowane operatory =, < i > (lecz nie &).  Długość, używana do porównywania
              jest długością argumentu łańcuchowego z pliku magicznego. Znaczy to, że wiersz można dopasować  do
              dowolnego  łańcucha i wypisać go, stosując >\0 (ponieważ wszystkie łańcuchy są większe od łańcucha
              zerowego).

       komunikat
              Komunikat, wypisywany  po  pomyślnym  dopasowaniu.  Jeśli  łańcuch  zawiera  specyfikację  formatu
              printf(3)  to  wartość  z pliku jest wypisywana (po odpowiednim maskowaniu) przy użyciu komunikatu
              jako łańcucha formatującego.

       Niektóre formaty plików zawierają dodatkowe dane, które mają być wypisane  razem  z  danym  typem  pliku.
       Wiersz,  rozpoczynający  się  od  znaku  > oznacza dodatkowe testy i komunikaty. Liczba > w linii określa
       poziom testu; wiersz bez > jest na poziomie 0. Każdy wiersz w poziomie n+1 jest pod  kontrolą  wiersza  w
       poziomie  n,  poprzedzającego  go  najbliżej  w  pliku  magicznym.   Jeśli test wiersza na poziomie n się
       powiedzie, dokonywane będą dalsze testy na poziomach n+1.  Proces ten kończy następny wiersz na  poziomie
       n.   Jeśli  pierwszy  znak  za ostatnim > to (, to łańcuch za nawiasem jest interpretowany jako pośrednie
       przesunięcie. Znaczy to, że liczba po nawiasie służy jako przesunięcie w  pliku.  Przy  tym  przesunięciu
       odczytywana  jest wartość używana następnie jako przesunięcie w pliku. Przesunięcia pośrednie są postaci:
       (x[.[bslBSL]][+-][y]).  Wartość x jest używana jako przesunięcie w pliku. Następnie przy tym przesunięciu
       odczytywany  jest  z  niego  bajt,  słowo  lub  podwójne  słowo, zależnie od specyfikatora typu [bslBSL].
       Wielkie litery oznaczają liczby jako wartości grubokońce (big-endian), podczas gdy małe litery  oznaczaja
       wartości  (ostrokońce)  little-endian.  Do  liczby  tej  dodawana  jest  wartość  y,  a  wynik służy jako
       przesunięcie w pliku. Domyślnym typem przesunięcia jest long.

       Czasami dokładne przesunięcie nie jest znane, gdyż może ono zależeć od długości  poprzednich  pól.  Można
       podać  przesunięcie  względem  końca  ostatniego pola wyższego poziomu (oczywiście można to wykonać tylko
       przy testach na podpoziomach, tj. testach  rozpoczynających  się  od  >).   Takie  względne  przesunięcie
       podawane jest za pomocą przedrostka & w przesunięcia.

BŁĘDY

       Formaty  long,  belong,  lelong,  short,  beshort, leshort, date, bedate i ledate zależą od systemu; może
       powinny być podawane jako liczba bajtów (2B, 4B, itd), gdyż rozpoznawane pliki zwykle pochodzą z systemu,
       gdzie długości są niezmienne.

       Nie   ma   (obecnie)  obsługi  dla  korzystania  z  danych  o  określonej  końcowości  (endianness)  przy
       przesunięciach pośrednich.

ZOBACZ TAKŻE

       file(1) - polecenie, która czyta ten plik.

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne.
       W  razie  zauważenia  różnic  między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
       funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 5 magic

       Prosimy  o  pomoc  w  aktualizacji  stron  man  -   więcej   informacji   można   znaleźć   pod   adresem
       http://sourceforge.net/projects/manpages-pl/.

                                                Ogólnie dostępne                                        MAGIC(5)