Skip to content

Hoe het bestandstype van een bestand te bepalen met Linux

28 de juli de 2021
GettyImages 111033484 58dab7b85f9b5846836c0288

De meeste mensen kijken naar de extensie van een bestand en raden vervolgens het type bestand van die extensie. Als je bijvoorbeeld een bestand ziet met de extensie gif, jpg, bmp of png, dan denk je aan een afbeeldingsbestand, en als je een bestand ziet met de extensie zip, ga je ervan uit dat het bestand is gecomprimeerd met een zip-compressie nut. Een bestand kan één extensie gebruiken, maar iets heel anders zijn. Linux gebruikt geen bestandsextensies; in plaats daarvan maakt het bestandstype deel uit van de bestandsnaam. Gebruik de . om het ware bestandstype te achterhalen het dossier opdracht.

Hoe het ‘bestand’-commando werkt

De opdracht file voert drie sets tests uit op een bestand:

  • Bestandssysteemtests
  • Magische testen
  • Taaltesten

De eerste reeks tests die een geldig antwoord opleveren, vraagt ​​om het bestandstype dat moet worden afgedrukt. Bestandssysteemtests onderzoeken de terugkeer van een stat-systeemaanroep. Het programma controleert of het bestand leeg is en of het een speciaal bestand is. Als het bestandstype wordt gevonden in het systeemkopbestand, wordt het geretourneerd als het geldige bestandstype. De magische tests controleren de inhoud van een bestand en in het bijzonder een paar bytes aan het begin die helpen bij het bepalen van het bestandstype. Er worden verschillende bestanden gebruikt om een ​​bestand te matchen met het bestandstype, en deze worden opgeslagen in:

  • /etc/magie
  • /usr/share/misc/magic.mgc
  • /usr/share/misc/magic

Overschrijf deze bestanden door een bestand in uw thuismap te plaatsen met de naam $HOME/.magic.mgc of $HOME/.magie. De eindtoetsen zijn taaltoetsen. Het bestand wordt gecontroleerd om te zien of het een tekstbestand is. Door de eerste paar bytes van een bestand te testen, leidt de test af of het bestand een ASCII, UTF-8, UTF-16 of een ander formaat is dat het bestand identificeert als een tekstbestand. Wanneer de tekenset is afgeleid, wordt het bestand getest in verschillende talen.

Hoe het ‘bestand’-commando te gebruiken

De het dossier opdracht heeft de volgende vorm: bestand bestandsnaam

type=”code”> Bijvoorbeeld om het type van een bestandstitel te controleren touch.svg, voer het volgende commando uit: bestand touch.svg

type=”code”> De uitvoer is ongeveer als volgt:

  • touch.svg: SVG Scalable Vector Graphics-afbeelding

Verschillende bestandstypen leveren verschillende resultaten op, bijvoorbeeld:

  • ODS-bestandstype: OpenDocument-spreadsheet
  • PDF-bestandstype: PDF-document, versie 1.4
  • CSV-bestandstype: ASCII-tekst, met zeer lange regels, met CRLF-lijnindicatoren

Meerdere bestanden verwerken

Standaard werkt de bestandsopdracht met een enkel bestand. U kunt echter een bestandsnaam specificeren die een lijst van bestanden bevat die door de het dossier opdracht. Open bijvoorbeeld een bestand met de naam testbestanden gebruik de nano-editor en voeg deze regels eraan toe:

  • /etc/passwd
  • /etc/pam.conf
  • /etc/opt

Sla het bestand op en voer de volgende bestandsopdracht uit: file -f testfiles

type=”code”> De uitvoer ziet er ongeveer zo uit:

  • /etc/passwd: ASCII-tekst
  • /etc/pam.conf: ASCII-tekst
  • /etc/opt: map

Een andere methode is om de het dossier commando eenmaal, maar met meerdere doelen. Bijvoorbeeld: bestand /etc/passwd /etc/pam.conf /etc/opt

De uitvoer zal ongeveer als volgt zijn:

  • /etc/passwd: ASCII-tekst
  • /etc/pam.conf: ASCII-tekst
  • /etc/opt: map

Standaard wildcards werken ook. Om bijvoorbeeld alle bestanden in de huidige werkdirectory te testen, gebruikt u: file *

Probeer dit om te testen op mappen die beginnen met de letter D (hoofdlettergevoelig): bestand D*

De resultaten kunnen bijvoorbeeld Desktop, Documenten en Downloads zijn.

Gecomprimeerde bestanden

Wanneer u de het dossier commando tegen een gecomprimeerd bestand ziet u de uitvoer zoiets als dit:

  • file.zip: ZIP-archiefgegevens, minimaal V2.0 om uit te pakken

Hoewel dit resultaat u vertelt dat het bestand een archiefbestand is, kent u de inhoud van het bestand niet. Kijk in het zipbestand om de bestandstypen van de bestanden in het gecomprimeerde bestand te zien. De volgende opdracht voert de bestandsopdracht uit op de bestanden in een ZIP-bestand: file -z bestandsnaam

type=”code”> De uitvoer toont nu de bestandstypen van bestanden in het archief.