Ga naar inhoud

πŸ“„ Het file Commando in Linux

In deze handleiding leer je hoe je file gebruikt op een Linux-systeem.

Het commando file wordt gebruikt om informatie over bestanden te tonen, zoals het type bestand, formaat of codering.
Het is handig om snel te achterhalen of een bestand een tekstbestand, binaire executable, afbeelding, archief of ander type is.

Achtergrondinformatie

Het commando file is standaard aanwezig op vrijwel alle Unix/Linux-systemen.

  • file inspecteert bestanden op basis van inhoud, niet alleen op basis van extensie.
  • Het kan informatie geven over tekstbestanden, executables, archieven, afbeeldingen, en meer.
  • In de praktijk wordt file vaak gebruikt bij scripts, debugging of bij het analyseren van onbekende bestanden.

Controleren of file aanwezig is

Het file-commando staat bijna altijd standaard op je systeem geΓ―nstalleerd.

Wil je controleren of file aanwezig is, dan kun je de versie opvragen:

file --version
Voorbeeldoutput
file-5.40
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

βš™οΈ Installeren van file

Het commando file is een los pakket en kan op sommige minimale systemen handmatig geΓ―nstalleerd worden.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install file

Voorbeeldoutput
file-5.40
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

Hieronder vind je enkele veelgebruikte combinaties van het file-commando:

  • file bestand.txt β†’ Controleer het type van een enkel bestand
Voorbeeld gebruik van file bestand.txt

Commando:

file bestand.txt
Voorbeeldoutput:
bestand.txt: ASCII text

  • file * β†’ Controleer alle bestanden in de huidige map

  • file -i bestand.txt β†’ Toon MIME-type van het bestand

  • file -b bestand.txt β†’ Toon alleen het type zonder bestandsnaam

  • -z β†’ Controleer ook gecomprimeerde bestanden
  • -s β†’ Controleer speciale bestanden zoals apparaten
  • -L β†’ Volg symbolische links en rapporteer over het doelbestand
  • --mime-type β†’ Toon alleen MIME-type
  • --mime-encoding β†’ Toon alleen codering

Het file-commando heeft weinig configuratie, maar je kunt omgevingsvariabelen gebruiken voor specifieke gedrag.

1. Per gebruiker instellen

Plaats bijvoorbeeld in ~/.bashrc:

alias filetype='file -i'

2. System-wide instellen

Plaats dezelfde alias in /etc/bash.bashrc of /etc/profile

Logging van het file-commando

Het file-commando schrijft zelf geen logbestanden weg.
Wil je gebruik van file monitoren, dan kan dat met auditd.

Voorbeeld auditd regel

sudo auditctl -w /usr/bin/file -p x -k file_monitor
  • -w /usr/bin/file β†’ bewaak het bestand file
  • -p x β†’ log bij uitvoeren
  • -k file_monitor β†’ tag voor herkenning

Logs bekijken:

ausearch -k file_monitor

Of rechtstreeks in:

less /var/log/audit/audit.log

Updaten van file

Het file-commando update je via de package manager van je distributie.

Voorbeeld (Debian/Ubuntu):

sudo apt update
sudo apt install --only-upgrade file

Verwijderen van file

Het file-commando kan verwijderd worden, maar dit kan scripts of workflows beΓ―nvloeden die afhankelijk zijn van bestandstype-informatie.

Voorbeeld (Debian/Ubuntu):

sudo apt remove file

πŸ“– Handleiding

De ingebouwde handleiding van Linux-commando’s is altijd beschikbaar via man.
Voor file:

man file
Voorbeeld
FILE(1)                     User Commands                     FILE(1)

NAME
       file - determine file type

SYNOPSIS
       file [OPTION]... [FILE]...

DESCRIPTION
       Classify each FILE according to type.