file
- file – program służący do określania typu pliku na podstawie jego zawartości, a nie rozszerzenia.
- Wykrywa m.in. teksty, pliki binarne, skompresowane archiwa, pliki wykonywalne ELF, obrazy dysków, certyfikaty, itp.
- Dostępny w większości dystrybucji Linux, *BSD, macOS, a także Windows (np. przez Cygwin/MSYS).
Składnia
Dział zatytułowany „Składnia”file [opcje] plik...
- Obsługuje wiele plików w jednym wywołaniu.
- Może działać na plikach lokalnych lub urządzeniach blokowych.
- Heurystyki opierają się na pliku
magic
, który zawiera reguły rozpoznawania typów.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-b | Pomija nazwę pliku w wyjściu (tylko typ) |
-i | Wyświetla MIME typu pliku (np. text/plain; charset=us-ascii ) |
-f <plik> | Czyta listę nazw plików z pliku wejściowego |
-z | Przetwarza zawartość skompresowaną gzip (dekompresuje w locie) |
--mime-type | Pokazuje tylko typ MIME (bez kodowania) |
--mime-encoding | Pokazuje tylko kodowanie MIME |
-L | Podąża za dowiązaniami symbolicznymi |
-h | Nie podąża za dowiązaniami (domyślnie) |
--help | Wyświetla pomoc |
--version | Informacja o wersji |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Sprawdź typ jednego plikufile obraz.jpg # -> JPEG image data...
# 2. Sprawdź tylko typ MIME bez nazwy plikufile -b --mime-type dokument.pdf # -> application/pdf
# 3. Przetwórz wiele plików z listyfile -f pliki.txt
# 4. Zidentyfikuj zawartość archiwum gzip bez dekompresjifile -z archiwum.gz
- Pierwszy przykład to podstawowe użycie wykrywające typ na podstawie magic bytes.
- Drugi służy do automatycznej klasyfikacji w skryptach.
- Trzeci pokazuje wsadową analizę.
- Czwarty przydaje się przy analizie zawartości skompresowanej.
- file działa niezależnie od rozszerzenia – polega na zawartości bajtowej.
- Obsługuje wiele warstw – np. ELF + 64-bit + architektura + biblioteki współdzielone.
- Dla plików tekstowych rozpoznaje kodowanie (ASCII, UTF-8, ISO-8859-1 itp.).
- Baza danych
magic
może być lokalnie modyfikowana lub aktualizowana (/usr/share/misc/magic
). - Niektóre systemy mogą używać uproszczonej wersji narzędzia (np. BusyBox).
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
cannot open ": No such file or directory | Nieprawidłowa ścieżka | Sprawdź istnienie pliku i poprawną nazwę |
ERROR: ... magic file not found | Brak pliku magic lub jego uszkodzenie | Zainstaluj ponownie pakiet file lub sprawdź zmienną środowiskową MAGIC |
data jako typ | Brak rozpoznanego wzorca w pliku | Plik może być binarny lub uszkodzony – sprawdź ręcznie heksadecymalnie |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man file – dokumentacja podręcznikowa.
- magic(5) – format pliku – definicja reguł detekcji.
- file source code – GitHub – repozytorium i historia narzędzia.