Provided by: manpages-pl_0.7-2_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)