Overzicht
De 'file'-opdracht identificeert het type van een bestand door de inhoud te analyseren, zonder afhankelijk te zijn van de bestandsextensie. Het herkent diverse formaten zoals tekst/binair, uitvoerbare bestandsformaten (ELF), gecomprimeerde bestanden, afbeeldingen/audio, en kan ook MIME-types en coderingen uitvoeren.
Belangrijkste kenmerken
- Identificatie op basis van daadwerkelijke inhoud, onafhankelijk van extensie
- Kan MIME-types en tekenencoderingen uitvoeren
- Keuze om symbolische linkdoel of de link zelf te identificeren
- Poging om gecomprimeerde bestanden intern te controleren (-z)
Voorbeelden van gebruiksscenario's
Situaties waarin de 'file'-opdracht bijzonder nuttig is.
- Identificatie van het werkelijke formaat van bestanden met verkeerde extensies (bijv. PDF vermomd als .jpg)
- Vaststellen van het type van bestanden zonder extensie
- Verwerking splitsen op basis van bestandstype in scripts
- MIME-type detectie van geüploade bestanden in web-/netwerkservices
- Identificatie van de symbolische link zelf of het doel
- Analyse van interne inhoud van gecomprimeerde bestanden
- Identificatie van uitvoerbare bestandsformaten in beveiligingsanalyse en forensisch onderzoek
Belangrijkste opties
Veelgebruikte opties zijn gegroepeerd per situatie.
1) 기본 동작 & 출력 제어
2) 입력/대상 지정
3) 매직 데이터베이스/제외/디버그
4) 도움말/버전
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`file` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Veelgebruikte patronen zijn samengevat in voorbeelden.
Basisidentificatie
file /bin/ls
Geeft het bestandstype in basisformaat weer
Korte uitvoer zonder bestandsnaam
file -b /bin/ls
Eenvoudige uitvoer, gemakkelijk te verwerken in scripts
MIME-type/Codering
file --mime-type index.html && file --mime-encoding README.md
Handig voor type-identificatie in web/pipelines
Controleer ook gecomprimeerde inhoud
file -z backup.tar.gz
Schat de werkelijke inhoud van gecomprimeerde bestanden
Symbolische link zelf vs. doel
file -h symlink && file -L symlink
Controleert de link zelf (-h) of volgt de link naar het doel (-L)
MIME-types in bulk controleren met find
find . -type f -print0 | xargs -0 file --mime-type
Veilig bestandslijsten doorgeven met behulp van NUL-scheidingsteken
Locatie van de Magic Database
Het pad kan variëren afhankelijk van het systeem en de distributie.
🪄 Standaard gecompileerde Magic DB
/usr/share/file/magic.mgc
Standaardlocatie voor de meeste distributies
📁 Bron Magic Directory
/usr/share/file/magic/
Bronregels vóór compilatie (origineel, niet .mgc)
Exitcodes
Raadpleeg deze bij het afhandelen van vertakkingen in scripts.
Code | Betekenis |
---|---|
0 | Normaal: Identificatie succesvol (of gevraagde bewerking succesvol) |
1 | Algemeen probleem: Bestand niet gevonden/ontoegankelijk/identificatie mislukt, etc. |
2 | Gebruiksfout of systeemfout |
Installatie
Meestal standaard geïnstalleerd, anders installeer als volgt:
Debian/Ubuntu
sudo apt update && sudo apt install -y file
RHEL/CentOS/Fedora
sudo dnf install -y file
Arch Linux
sudo pacman -S --needed file
openSUSE
sudo zypper install -y file
Tips & Aandachtspunten
- Door `--mime-type` en `--mime-encoding` expliciet te gebruiken, kunnen verschillen in gedrag van `-i/--mime` tussen distributies/versies worden vermeden.
- Afhandeling van symbolische links: Gebruik `-h` om de link zelf te bekijken, en `-L` om het doelbestand te controleren.
- Bij bulkverwerking zorgt het patroon `find -print0 | xargs -0` ervoor dat bestandsnamen met spaties/nieuwe regels veilig worden verwerkt.
- Afhankelijk van het compressieformaat kan `-z` mogelijk niet altijd de interne inhoud controleren. Decomprimeer indien nodig eerst om te controleren.