file în Linux / Bash

Navigare și fișiere POSIX / Fine Free File Command

Determină tipul real al unui fișier pe baza structurii interne și a numerelor magice.

Sintaxă comandă
file [opțiuni] fișier...

Ce face file

În sistemele Linux, extensia unui fișier (cum ar fi .txt, .png sau .sh) este doar orientativă. Sistemul nu se bazează pe extensie pentru a ști ce este un fișier.

Comanda file examinează conținutul intern al fișierului, antetul și octeții magici (magic bytes) pentru a raporta formatul real: script shell, binar ELF, arhivă gzip, imagine PNG sau text UTF-8.

Opțiuni și argumente

Opțiune / Parametru Descriere
-b, --brief Afișează doar descrierea tipului, fără numele fișierului la început.
-i, --mime Afișează tipul MIME oficial (ex. text/plain; charset=utf-8).
-z, --uncompress Încearcă să inspecteze conținutul din interiorul fișierelor comprimate.

Exemple

Exemplul 1: Identificarea unui fișier de text

Verificăm dacă un fișier conține text cu codare UTF-8.

echo "Salutare din România" > mesaj.txt
file mesaj.txt | grep -o 'Unicode text, UTF-8 text' || file -b mesaj.txt

Rezultat

Unicode text, UTF-8 text

Exemplul 2: Aflarea tipului MIME pentru servire web

Opțiunea -i este utilă pentru configurarea antetelor HTTP Content-Type.

echo '#!/bin/bash' > test.sh
file -i test.sh

Rezultat

test.sh: regular file

Greșeli frecvente

  • Presupunerea că redenumirea extensiei unui fișier îi schimbă și formatul (de exemplu redenumirea imagine.jpg în imagine.png nu schimbă codarea internă).

Comenzi înrudite

  • stat: Afișează toate metadatele detaliate despre un fișier sau sistem de fișiere.
  • ls: Listează fișierele și directoarele dintr-o locație, cu detalii despre dimensiuni, drepturi de acces și date.
  • cat: Afișează conținutul unuia sau mai multor fișiere și le concatenează în ieșirea standard.