file (Unix)
file (ang. file – plik) – standardowy program uniksowy, będący podstawową komendą tegoż systemu. Służy do określania typu informacji zawartych w pliku.
Użycie
file [opcje] nazwa
Historia
Narzędzie file pojawiło się pierwszy raz w Unix Research Version 4 w 1973. System V przyniósł wiele znaczących zmian. Jedną z większych było przeniesienie informacji o typach plików do oddzielnego pliku, zamiast włączania go do programu bezpośrednio.
Większość dużych dystrybucji BSD i Linuksa używa opensource'owej reimplementacji napisanej przez Iana Darwina. Została ona poszerzona przez Geoffa Collyera w 1989 i od tego czasu była wielokrotnie modyfikowana przez programistów, którymi byli m.in. Guy Harris, Chris Lowth i Eric Fischer.
Opcje
Opcja | Znaczenie |
---|---|
-b | Nie podawanie nazw plików na początku wierszy wynikowych (tryb skrócony). |
-c | Powoduje sprawdzanie wydruku przetworzonej postaci pliku magicznego. Jest to zwykle używane w połączeniu z aby odpluskwić plik liczb magicznych przed jego zainstalowaniem. |
-C | Zapisuje plik wynikowy magic.mgc, który zawiera wstępnie przetworzoną wersję pliku. |
-f NAZWA | Odczytuje nazwy testowanych plików z NAZWA (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. |
-i | Powoduje wypisywanie przez polecenie file łańcuchów stanowiących typy MIME, zamiast bardziej tradycyjnej postaci czytelnej dla człowieka. Zatem może ono raczej wypisać text/plain; charset=us-ascii zamiast ASCII text. Aby ta opcja działała, file zmienia sposób w jaki obsługuje rozpoznane pliki (takie jak wiele typów plików tekstowych, katalogi itd.) oraz posługuje się alternatywnym plikiem liczb magicznych. |
-k | Nie zatrzymuje się po znalezieniu pierwszego dopasowania, kontynuuje testowanie. |
-m LISTA | Podaje alternatywną listę plików z liczbami magicznymi. Może to być pojedynczy plik lub rozdzielona dwukropkami lista plików. |
-n | Wymusza wyprowadzenie danych wyjściowych po sprawdzeniu każdego pliku. Jest to przydatne jedynie podczas sprawdzania listy plików. W zamierzeniu ma być przydatne programom, które wymagają wyprowadzania typów plików w potoku. |
-v | Drukuje informacje o wersji i kończy. |
-z | Próbuje zaglądać do plików skompresowanych. |
-L | powoduje, że program podąża za dowiązaniami symbolicznymi, podobnie jak w przypadku opcji ls o identycznej nazwie (na systemach, które obsługują dowiązania symboliczne). |
-s | Powoduje, że file 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 file nie zważa na zgłaszany przez stat rozmiar pliku, gdyż w niektórych systemach funkcja ta zgłasza zero dla surowych partycji dysków. |
Przykłady
$ file file.c file.c: C program text
$ file program program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
$ file /dev/wd0a /dev/wd0a: block special (0/0)
$ file -s /dev/hda1 /dev/hda1: Linux/i386 ext2 filesystem
$ file -s /dev/hda5 /dev/hda5: Linux/i386 swap file
$ file compressed.gz compressed.gz: gzip compressed data, deflated, original filename, `compressed', last modified: Thu Jan 26 14:08:23 2006, os: Unix
$ file data.ppm data.ppm: Netpbm PPM "rawbits" image data