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

NAZWA

       file — określa typ pliku

SKŁADNIA

       [-bcEhiklLNnprsvz0]   [--apple]   [--mime-encoding]   [--mime-type]   [-e   nazwa-testu]  [-F  separator]
       [-f nazwa-pliku] [-m pliki-magiczne] plik ...
       -C [-m pliki-magiczne]
       [--help]

OPIS

       Niniejsza strona podręcznika dokumentuje wersję 5.19 polecenia .

       sprawdza każdy ze swoich argumentów, próbując go sklasyfikować. Istnieją trzy zestawy  testów,  które  są
       wykonywane  w  następującej  kolejności:  testy  systemu  plików,  testy liczb magicznych i testy języka.
       Pierwszy test zakończony powodzeniem powoduje wypisanie typu pliku.

       Wypisany typ będzie zwykle zawierał jedno ze słów text (plik  zawiera  tylko  znaki  drukowalne  i  kilka
       spośród  znaków  sterujących  oraz  prawdopodobnie  można  go  bezpiecznie  czytać  na  terminalu ASCII),
       executable (wykonywalny -- plik zawiera wyniki kompilacji w formacie zrozumiałym dla jądra pewnego Uniksa
       lub innego systemu) lub data (dane) oznaczające cokolwiek innego (zwykle jest to  binarny,  niedrukowalny
       plik).  Wyjątkami  są  ogólnie  znane  formaty  plików  (pliki  core, archiwa tar), o których wiadomo, że
       zawierają dane binarne. Podczas dodawania lokalnych modyfikacji do pliku /etc/magic, proszę  zachować  te
       słowa  kluczowe.   Wielu polega na tym, że dla wszystkich czytelnych plików wypisywane jest słowo "text".
       Nie należy więc robić tego, co zrobiono w Berkeley -  zmieniono  tam  "shell  commands  text"  na  "shell
       script".

       Testy systemu plików są oparte o sprawdzanie wartości zwracanej przez funkcję systemową stat(2).  Program
       sprawdza,  czy  plik  jest  pusty  oraz  czy  jest  jakiegoś  rodzaju plikiem specjalnym. Powinno się dać
       rozpoznać wszystkie rodzaje plików występujące w danym  systemie  (gniazda,  dowiązania  symboliczne  lub
       nazwane  potoki (FIFO), w systemach które je zaimplementowały), o ile te rodzaje plików będą zdefiniowane
       w systemowym pliku nagłówkowym <sys/stat.h.>

       Testy  liczb  magicznych  służą  do  sprawdzania  plików, które zawierają  dane  w  określonym  formacie.
       Dobrym  tego  przykładem  jest wykonywalny plik binarny (skompilowany program) a.out, którego format jest
       zdefiniowany w <elf.h,> <a.out.h> i prawdopodobnie <exec.h> w standardowym katalogu plików  nagłówkowych.
       Pliki  te zawierają "liczby magiczne" w określonym miejscu, w pobliżu początku pliku. Liczby te informują
       uniksowy system operacyjny o tym, że plik jest wykonywalnym plikiem binarnym oraz który z możliwych typów
       reprezentuje. Koncepcja "liczb magicznych" została jako rozszerzenie  zastosowana  również  do  plików  z
       danymi.  Można  tak  opisać  każdy  plik  posiadający  niezmienny  identyfikator  przy małym i określonym
       przesunięciu względem początku pliku. Informacje identyfikujące te pliki są odczytywane ze skompilowanego
       pliku liczb magicznych /usr/share/misc/magic.mgc lub z katalogu /usr/share/misc/magic,  gdy  skompilowany
       plik nie istnieje. Dodatkowo, pliki $HOME/.magic.mgc lub $HOME/.magic, jeśli będą istniały, zostaną użyte
       z pierwszeństwem w stosunku do systemowych plików magicznych.

       Jeśli  plik nie pasuje do żadnego z wpisów w pliku liczb magicznych, dokonywane jest sprawdzenie czy jest
       to plik tekstowy.  Rozpoznawane  są  zestawy  znaków:  ASCII,  ISO-8859-x,  8-bitowe  rozszerzenia  ASCII
       niezgodne  z ISO (używane w systemach Macintosh i IBM PC), Unicode w kodowaniu UTF-8, Unicode w kodowaniu
       UTF-16 oraz EBCDIC. Sprawdzane są zakresy i ciągi bajtów, które stanowią drukowalny tekst w każdym z tych
       zestawów znaków.  Jeśli plik przejdzie któryś z tych  testów,  zgłaszany  jest  odpowiadający  mu  zestaw
       znaków.  Pliki w ASCII, ISO-8859-x, UTF-8 oraz w rozszerzeniach ASCII są identyfikowane jako “text”, gdyż
       mogą  być one na ogół czytane na dowolnym terminalu; pliki w UTF-16 i EBCDIC stanowią jedynie  "character
       data"  (dane  znakowe),  gdyż  jeśli zawierają one tekst, tekst ten wymaga przed przeczytaniem konwersji.
       Dodatkowo, będzie próbował określić inne charakterystyki plików tekstowych. Jeśli wiersze  są  zakończone
       znakami  CR,  CRLF  lub  NEL, zamiast standardowego uniksowego LF, zostanie to zgłoszone. Zostaną również
       zidentyfikowane pliki zawierające wbudowane sekwencje unikowe lub wielokrotnego drukowania.

       Po określeniu przez zestawu znaków używanego w pliku tekstowym, spróbuje on odgadnąć w jakim języku  plik
       został  napisany.  Testy  językowe  składają  się  z  poszukiwań  określonych  łańcuchów  znakowych (por.
       <names.h)> , które mogą pojawić się gdziekolwiek w kilku pierwszych  blokach  pliku.  Na  przykład  słowo
       kluczowe .br wskazuje, że plik jest najprawdopodobniej plikiem wejściowym dla programu troff(1) podobnie,
       jak  struct  wskazuje na program w C. Testy te są mniej godne zaufania niż poprzednie dwie grupy, więc są
       wykonywane na końcu. Testy językowe testują również niektóre pliki zbiorcze (jak archiwa tar(1)).

       Plik, który nie może zostać określony jako jako zapisany w jednym z powyższych zestawów znaków,  jest  po
       prostu określany jako "data" (dane).

OPCJE

       --apple
               Powoduje,  że  polecenie  file  wypisuje  typ  pliku  i  kod  twórcy zgodnie z zapisem używanym w
               starszych wersjach MacOS. Kod składa się z ośmiu liter,  pierwsza  opisuje  typ  pliku,  ostatnia
               twórcę.

       -b, --brief
               Nie podaje nazw plików na początku wierszy wynikowych (tryb skrócony).

       -C, --compile
               Zapisuje plik wynikowy magic.mgc, który zawiera wstępnie przetworzoną wersję pliku lub katalogu.

       -c, --checking-printout
               Powoduje  sprawdzenie  wydruku  przetworzonej  postaci pliku magicznego. Jest to zwykle używane w
               połączeniu z -m, aby odpluskwić nowy plik liczb magicznych przed jego zainstalowaniem.

       -E      W przypadku błędów systemu plików (np. nie znaleziono pliku) nie obsługuje błędu jako  normalnego
               wyniku i nie kontynuuje działania, jak wymaga norma POSIX, lecz wyświetla błąd i wychodzi.

       -e, --exclude nazwa-testu
               Wyłącza  test o nazwie nazwa-testu z listy testów, przeprowadzanych w celu określenia typu pliku.
               Poprawne nazwy testów to:

               apptype   Typ aplikacji EMX (tylko na EMX).

               ascii     Różne typy plików tekstowych (ten test stara się odgadnąć kodowanie tekstu, niezależnie
                         od opcji "encoding").

               encoding  Różne kodowania tekstowe do testów magicznych soft.

               tokens    Ignorowane w celu zachowania kompatybilności wstecznej.

               cdf       Wypisuje szczegóły plików Compound Document File.

               compress  Wyszukuje i zagłębia się w pliki skompresowane.

               elf       Wypisuje szczegóły pliku ELF.

               soft      Sprawdza z plikami magicznymi.

               tar       Sprawdza pliki tar.

       -F, --separator separator
               Używa podanego łańcucha jako separatora między nazwą pliku a zwróconym wynikiem pliku.  Domyślnie
               jest to ":".

       -f, --pliki-od nazwa-pliku
               Odczytuje  nazwy  testowanych  plików z nazwa-pliku (po jednym w wierszu) przed listą argumentów.
               Obecna musi być albo nazwa-pliku  albo  przynajmniej  jeden  argument  będący  nazwą  pliku;  aby
               testować  standardowe  wejście,  należy  użyć argumentu "-" jako nazwy pliku. Proszę zauważyć, że
               nazwa-pliku nie jest rozwijana, a nazwy plików są przetwarzane przy wystąpieniu tej  opcji  przed
               wszystkimi  innymi  opcjami.  Pozwala to na przetworzenie wielu list plików z różnymi argumentami
               wiersza polecenia, w tym samym wywołaniu .  Z tego powodu, jeśli chce  się  ustawić  ogranicznik,
               konieczne  jest zrobienie tego przed podaniem listy plików, np. " -F @ -f nazwa-pliku ", zamiast:
               " -f nazwa-pliku -F @ ".

       -h, --no-dereference
               opcja powoduje, że nie zachodzi podążanie  za  dowiązaniami  symbolicznymi  (w  systemach,  które
               obsługują  dowiązania  symboliczne). Jest to domyślne zachowanie, jeśli nie zdefiniowano zmiennej
               środowiskowej POSIXLY_CORRECT.

       -i, --mime
               Powoduje, że polecenie file wypisuje łańcuchy typów mime, zamiast  tradycyjnych  nazw  czytelnych
               dla użytkownika. Stąd, pojawić się może "text/plain; charset=us-ascii", zamiast "ASCII text".

       --mime-type, --mime-encoding
               Jak -i, lecz wypisuje jedynie określone element(y).

       -k, --keep-going
               Nie  zatrzymuje  się  po  pierwszym  dopasowaniu.  Kolejne dopasowania będą poprzedzone łańcuchem
               "\012- " (aby osiągnąć znak nowego wiersza, proszę skorzystać z opcji -r).  Wygrywa najsilniejszy
               wzór magiczny (patrz opcja -l).

       -l, --list
               Pokazuje listę wzorców i ich siłę posortowanych malejącą według siły magic, która jest używana do
               dopasowania (zobacz też opcję -k).

       -L, --dereference
               Powoduje, że program podąża za dowiązaniami symbolicznymi, tak jak w  przypadku  opcji  ls(1)  (w
               systemach   obsługujących   dowiązania  symboliczne)  o  identycznej  nazwie.  Jest  to  domyślne
               zachowanie, jeśli zdefiniowano zmienną środowiskową POSIXLY_CORRECT.

       -m, --plik-magiczny pliki-magiczne
               Podaje alternatywną listę plików i katalogów zawierających magię. Może być to pojedynczy plik lub
               rozdzielona dwukropkami lista plików. Jeśli razem z plikiem lub  katalogiem  zostanie  znaleziony
               skompilowany plik magiczny, zostanie użyty zamiast pliku lub katalogu.

       -N, --no-pad
               Nie wyrównuje nazw plików tak, aby wynik wyglądał lepiej.

       -n, --no-buffer
               Wymusza  opróżnienie  standardowego  wyjścia  po  sprawdzeniu  każdego  pliku.  Jest to przydatne
               wyłącznie przy sprawdzaniu listy plików. Opcja jest przeznaczona do programów oczekujących wyniku
               z typem plików, pozyskanego z potoku.

       -p, --preserve-date
               W systemach obsługujących utime(3) lub utimes(2), stara się zachować czas  dostępu  analizowanych
               plików, aby udać, że nigdy ich nie odczytało.

       -r, --raw
               Nie  tłumaczy  niedrukowalnych  znaków na \ooo. Zwykle tłumaczy znaki niedrukowalne na ich postać
               ósemkową.

       -s, --pliki-specjalne
               Normalnie, próbuje czytać i określać rodzaj pliku jedynie dla tych argumentów, które  są  plikami
               zgłoszonymi  przez  stat(2) jako zwykłe pliki. Pozwala to uniknąć problemów, gdyż czytanie plików
               specjalnych może mieć nieprzyjemne konsekwencje. Podanie opcji  -s  powoduje,  że  czyta  również
               argumenty  będące  plikami  specjalnymi  urządzeń   blokowych  i  znakowych. Jest to przydatne do
               określania rodzaju systemu plików w przypadku danych na surowych partycjach dysków,  stanowiących
               pliki  specjalne  urządzeń  blokowych. Opcja ta powoduje również, że nie zważa na zgłaszany przez
               stat(2) rozmiar pliku, gdyż w niektórych systemach funkcja ta zgłasza zero dla surowych  partycji
               dysków.

       -v, --version
               Wyświetla informacje o wersji i kończy działanie.

       -z, --uncompress
               Próbuje zaglądać do plików skompresowanych.

       -0, --print0
               Wypisuje  znak  zerowy  "\0"  po  końcu nazwy plików. Przydatne do zastosowania cut(1) na wyniku.
               Opcja nie wpływa na separator, który jest w dalszym ciągu wypisywany.

       --help  Wyświetla komunikat pomocy i wychodzi.

PLIKI

       /usr/share/misc/magic.mgc  Domyślna skompilowana lista liczb magicznych.
       /usr/share/misc/magic      Katalog zawierający domyślne pliki magiczne.

ŚRODOWISKO

       Zmienna środowiskowa MAGIC może być wykorzystana do ustawienia domyślnej nazwy  pliku  magicznego.  Jeśli
       zmienna ta jest ustawiona, to nie próbuje otworzyć $HOME/.magic.  dodaje ".mgc" do wartości tej zmiennej,
       jeśli  to  konieczne.  Jednak  plik musi istnieć, aby plik.mime był brany pod uwagę. Zmienna środowiskowa
       POSIXLY_CORRECT kontroluje (w systemach, które obsługuję dowiązania środowiskowe),  czy  będzie  próbował
       podążać  za  dowiązaniami  symbolicznymi. Jeśli jest ustawiona, to podąża za nimi, w przeciwnym wypadku -
       nie. Za dowiązania odpowiadają również opcje -L i -h.

ZOBACZ TAKŻE

       magic(5), hexdump(1), od(1), strings(1),

ZGODNOŚĆ ZE STANDARDAMI

       Program ten prawdopodobnie wykracza poza definicję FILE(CMD) z definicji interfejsu Systemu V  (System  V
       Interface  Definition).  Wydaje  się tak przynajmniej z tego, co można zrozumieć z tamtejszego niejasnego
       języka... Zachowanie programu jest w większości zgodne z zachowaniem programu z Systemu  V  o  tej  samej
       nazwie.  Wersja  niniejsza  zna  więcej  magii, więc będzie dawała w wielu wypadkach inne (dokładniejsze)
       wyniki.

       Jedną z istotnych różnic między tą wersją i wersją z Systemu V, jest to,  że  niniejsza  wersja  traktuje
       białe znaki jako separatory, więc spacje w łańcuchach wzorców muszą być chronione. Na przykład,

             >10     string  language impress        (imPRESS data)

       w istniejącym pliku magicznym będzie musiało być zamienione na

             >10     string  language\ impress       (imPRESS data)

       Dodatkowo,  w  tej  wersji,  jeśli  łańcuch wzorca zawiera odwrotny ukośnik, to musi być on chroniony. Na
       przykład

             0       string          \begindata      Andrew Toolkit document

       w istniejącym pliku magicznym będzie musiało być zamienione na

             0       string          \\begindata     Andrew Toolkit document

       Wersja 3.2 SunOS i późniejsze pochodzące z  Sun  Microsystems  zawierają  polecenie  ,  wywodzące  się  z
       polecenia  z  System  V,  lecz  z pewnymi rozszerzeniami. Ta wersja różni się od Sun-owskiej tylko małymi
       szczegółami. Zawiera ona rozszerzenie operatora "&", używanego jako np.

             >16     long&0x7fffffff >0              not stripped

KATALOG MAGICZNY

       Wpisy w pliku liczb magicznych pochodzą z wielu źródeł, głównie z  USENET-u  i  zgłoszone  przez  różnych
       autorów.  Christos  Zoulas  (adres  poniżej)  będzie  zbierał  dodatkowe lub poprawione wpisy pliku liczb
       magicznych. Zebrane wpisy będą okresowo dystrybuowane.

       Kolejność wpisów w pliku magicznym jest istotna. Zależnie od używanego systemu, kolejność,  w  której  są
       ułożone, może być nieprawidłowa.

PRZYKŁADY

             $ file file.c file /dev/{wd0a,hda}
             file.c:   C program text
             file:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
                       dynamically linked (uses shared libs), stripped
             /dev/wd0a: block special (0/0)
             /dev/hda: block special (3/0)

             $ file -s /dev/wd0{b,d}
             /dev/wd0b: data
             /dev/wd0d: x86 boot sector

             $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
             /dev/hda:   x86 boot sector
             /dev/hda1:  Linux/i386 ext2 filesystem
             /dev/hda2:  x86 boot sector
             /dev/hda3:  x86 boot sector, extended partition table
             /dev/hda4:  Linux/i386 ext2 filesystem
             /dev/hda5:  Linux/i386 swap file
             /dev/hda6:  Linux/i386 swap file
             /dev/hda7:  Linux/i386 swap file
             /dev/hda8:  Linux/i386 swap file
             /dev/hda9:  empty
             /dev/hda10: empty

             $ file -i file.c file /dev/{wd0a,hda}
             file.c:      text/x-c
             file:        application/x-executable
             /dev/hda:    application/x-not-regular-file
             /dev/wd0a:   application/x-not-regular-file

HISTORIA

       Polecenie  istniało  w każdym systemie UNIX od przynajmniej wersji Research Version 4 (strona podręcznika
       man z listopada 1973). Wersja z Systemu V wprowadziła jedną istotną główną zmianę: zewnętrzną listę typów
       liczb magicznych. Spowolniło to trochę program, lecz uczyniło go bardziej elastycznym.

       Program ten, oparty na wersji z Systemu V, został napisany przez  Iana  Darwina  ⟨ian@darwinsys.com⟩  bez
       zaglądania do innych źródeł.

       John Gilmore przerobił mocno ten kod, czyniąc go lepszym niż pierwsza wersja. Geoff Collyer znalazł kilka
       nietrafności i dostarczył trochę wpisów w pliku liczb magicznych. Zmiana obsługi operatora "&" przez Roba
       McMahona, ⟨cudcv@warwick.ac.uk⟩, w 1989.

       Guy Harris, guy@netapp.com, wykonał wiele zmian w okresie od 1993 do dzisiaj.

       Podstawowy   rozwój   i   konserwację   w   okresie  od  1990  do  dzisiaj  prowadzi  Christos  Zoulas  (
       ⟨christos@astron.com⟩).

       Zmodyfikowany przez Chrisa Lowtha, ⟨chris@lowth.com⟩, w 2000: Obsługa opcji -i powodującej  wyprowadzanie
       łańcuchów  typów MIME oraz korzystającej z alternatywnego pliku liczb magicznych i wbudowanej logiki.

       Zmodyfikowany  przez  Erica  Fischera  (  ⟨enf@pobox.com⟩),  w  lipcu 2000, aby rozpoznawał kody znaków i
       próbował zidentyfikować język plików nie-ASCII.

       Zmodyfikowany przez Reubena Thomasa ⟨rrt@sc3d.org⟩, w latach 2007-2011,  w  celu  poprawy  obsługi  MIME,
       połączenia  magii MIME i nie MIME, obsługi zarówno katalogów jak i plików magicznych, zaaplikowania wielu
       poprawek błędów, zaktualizowania i  poprawienia  sporej  części  magii,  poprawienia  systemu  budowania,
       dokumentacji i przepisania podpięć Pythona w czystym Pythonie.

       Lista osób, które wniosły wkład do katalogu "magic" (pliki magiczne) jest za długa, aby ją tu przytaczać.
       Wiecie kim jesteście; dziękujemy. Wiele osób jest wspomnianych w plikach źródłowych.

NOTKA PRAWNA

       Copyright  (c)  Ian  F.  Darwin,  Toronto,  Canada, 1986-1999. Na standardowej licencji Berkeley Software
       Distribution, znajduje się ona w pliku COPYING, w katalogu źródeł.

       Pliki tar.h i is_tar.c zostały napisane przez Johna Gilmore'a,  a  pochodzą  z  jego  ogólnie  dostępnego
       programu tar(1) i nie podlegają powyższej licencji.

WARTOŚĆ ZWRACANA

       zwraca 0 po pomyślnym wykonaniu i wartość niezerową w przypadku wystąpienia błędu.

BŁĘDY

       Proszę  zgłaszać błędy i wysyłać łatki do systemu śledzenia błędów pod adresem http://bugs.gw.com/ lub na
       listę      dyskusyjną      ⟨file@mx.gw.com⟩       (najpierw       proszę       się       zapisać       na
       http://mx.gw.com/mailman/listinfo/file).

DO ZROBIENIA

       Naprawić wyjście, dzięki czemu testy flag MIME i APPLE nie będą potrzebne wszędzie, a rzeczywiste wyjście
       byłoby   tworzone  tylko  raz  w  jednym  miejscu.  Wymaga  odpowiedniego  projektu.  Sugestia:  wypychaj
       prawdopodobne wyniki na listę i użyj ostatniej wartości z listy (powinna być najdokładniejsza)  lub  użyj
       wartości domyślnej, jeśli lista jest pusta. Nie powinno to spowolnić obliczeń.

       Kontynuować likwidację wszystkich błędów. System BTS Debiana jest tu dobrym źródłem.

       Przechowywać  dowolnie długie łańcuchy, np. dla %s wzorców, dzięki czemu mogłyby być wypisywane. Naprawia
       błąd Debiana #271672. Wymagałoby bardziej złożonego  kodu  przechowywania/ładowania  odpowiedzialnego  za
       naukę.

       Dodać składnię do względnych przesunięć po bieżącym poziomie (bug Debiana #466037).

       Sprawić, by działała opcja -ki, tzn. podawanie wielu typów MIME.

       Dodać bibliotekę zip do zagłębienia się w dokumenty Office2007, co umożliwiłoby poznanie ich typu.

       Dodać opcję do wypisywania URL-i źródeł opisów plików.

       Połączyć  przeszukiwania  skryptów  i  dodać metodę na powiązanie nazw plików wykonywalnych z typami MIME
       (wartość magiczna do !:mime która spowodowałaby wyszukanie wynikowego łańcucha  w  tabeli).  Dzięki  temu
       uniknęłoby się dodawanie tych samych wartości magicznych dla każdego nowego interpretera hash-bang.

       Naprawić  “name”  i  “use”  aby  pilnowały  spójności  w  chwili  kompilacji  (zduplikowane “name”, “use”
       wskazujące na niezdefiniowaną “name”).  “name” / “use” powinny być  efektywniejsze  poprzez  utrzymywanie
       posortowanej  listy  nazw.  Wdrożyć  i  udokumentować ^ jako specjalny przypadek do zmieniania kolejności
       bajtów w parserze, dzięki czemu nie wymagałoby to cytowania.

DOSTĘPNOŚĆ

       Najnowszą oryginalną wersję programu tego autora można pobrać  z  anonimowego  ftp  z  ftp.astron.com,  z
       katalogu /pub/file/file-X.YZ.tar.gz.

TŁUMACZENIE

       Autorami   polskiego   tłumaczenia   niniejszej   strony   podręcznika   man   są:  Przemek  Borys  (PTM)
       <pborys@dione.ids.pl>,  Andrzej  M.  Krzysztofowicz  (PTM)  <ankry@green.mf.pg.gda.pl>  i  Michał  Kułach
       <michal.kulach@gmail.com>.
       Polskie  tłumaczenie  jest  częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie błędów na stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  5.19 oryginału.

Debian                                          30 stycznia 2014                                         FILE(1)