FILE(1)

NAAM
file - bepaal bestand soort

SAMENVATTING
file [-bcdEhiklLNnprsSvzZ0] [- -apple] [- -exclude-quiet] [- -extension] [- -mime-encoding] [- -mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] [-P name=value] file ... file -C [-m magicfiles] file [- -help]

BESCHRIJVING
This manual page documents version 5.40 of the file command.

file test elk argument in een poging het te classificeren. Er zijn drie testen, uitgevoerd in deze volgorde: bestandssysteem testen, magische nummer testen en taal testen. De eerste test die slaagt zorgt dat de bestandsoort wordt getoond.

The type printed will usually contain one of the words text (the file contains only printing characters and a few common control characters and is probably safe to read on an ASCII terminal), executable (the file contains the result of compiling a program in a form understandable to some UNIX kernel or another), or data meaning anything else (data is usually “binary” or non-printable). Exceptions are well-known file formats (core files, tar archives) that are known to contain binary data. When modifying magic files or the program itself, make sure to preserve these keywords. Users depend on knowing that all the readable files in a directory have the word “text” printed. Don't do as Berkeley did and change “shell commands text” to “shell script”.

De bestandssysteem tests zijn gebaseerd op het onderzoeken van de eindwaarde van een stat(2) systeem aanroep. Het programma test om te zien of een bestand leeg is, of dat het een soort speciaal bestand is. Elke bekende bestand soort die toepasselijk is op het systeem waar u op draait (sockets, symbolische koppelingen, benoemde pijpen (FIFOs) op systemen die dat implementeren) worden opgemerkt als ze zijn gedifinieerd in het systeem header bestand <sys/stat.h>.

De magische nummer testen worden gebruikt om te testen op bestanden met gegevens in bepaalde vaste vormen. Het meest in het oog springende voorbeeld hiervan is een binair uitvoerbaar (gecompileerd programma) a.out bestand, wiens vorm gedefinieerd is in <elf.h>, <a.out.h> en mogelijk <exec.h> in the standard include directory. These files have a “magic number” stored in a particular place near the beginning of the file that tells the UNIX operating system that the file is a binary executable, and which of several types thereof. The concept of a “magic number” has been applied by extension to data files. Any file with some invariant identifier at a small fixed offset into the file can usually be described in this way. The information identifying these files is read from the compiled magic file /usr/share/file/misc/magic.mgc, or the files in the directory /usr/share/file/misc/magic if the compiled file does not exist. In addition, if $HOME/.magic.mgc or $HOME/.magic exists, it will be used in preference to the system magic files.

Als een argument een ASCII bestand blijkt te zijn dan probeert file om de taal te raden. De taal tests zoeken naar bepaalde strings (cf names.h) die ergens in de eerste paar blokken van het bestand kunnen voorkomen. Bijvoorbeeld het sleutelwoord “.br” betekend hoogstwaarschijnlijk dat het bestand een “troff” (1) invoer bestand is, net zoals het sleutelwoord “struct” een C programma aangeeft. Deze tests zijn minder betrouwbaar dan de eerdere twee groepen, dus worden ze als laatste uitgevoerd. De taal routines testen ook wat andere dingen (zoals “tar” (1) archieven) en bepalen of een onbekend bestand `ascii text' of `data' genoemd moet worden).

Zodra file de teken set in een tekst-bestand heeft bepaald , zal het proberen te bepalen in welke taal het bestand is geschreven. De taal testen zoeken bepaalde teksten (zie <names.h>) die overal kunnen voorkomen in de eerste blokken van een bestand. Bijvoorbeeld, het trefwoord, .br geeft aan dat het bestand hoogstwaarschijnlijk een troff(1) invoer bestand is, net als het trefwoord struct aangeeft dat het een C programma is. Deze testen zijn minder betrouwbaar dan de voorgaande twee groepen, daarom worden zij als laatste toegepast. De taal test routines testen ook verschillende (zoals tar(1) archieven, JSON files).

Elk bestand dat niet geïdentificeerd kan worden als geschreven in een van de bovengenoemde teken sets, is eenvoudig “data”.

OPTIES

- -apple
    Causes the file command to output the file type and creator code as used by older MacOS versions. The code consists of eight letters, the first describing the file type, the latter the creator. This option works properly only for file formats that have the apple-style output defined.

-b, - -brief
    Zet geen bestandsnamen vóór uitvoerregels.

-C, - -compile
    Schrijf een magic.mgc uitvoer bestand dat een eerder ontlede versie van een magisch bestand of map bevat.

-c, - -checking-printout
    Cause a checking printout of the parsed form of the magic file. This is usually used in conjunction with the -m option to debug a new magic file before installing it.

-d  Stuurt interne debug informatie naar stderr.

-E  Bij filesysteem fouten (bestand niet gevonden, etc.) in plaats van de fout te behandelen als reguliere uitvoer zoals POSIX vereist en door te gaan, geef een fout melding en stop.

-e, - -exclude testnaam
    Sluit de test uit zoals genoemd in testnaam van de lijst van testen gemaakt om de bestandssoort te bepalen. Valide test namen zijn:

    apptype
        EMX applicatie type (alleen op EMX).

    ascii
        Verschillende typen van tekst bestanden (deze test zal trachten de tekst codering, te raden, onafhankelijk van de instelling van de ‘encoding’ optie).

    codering
        Verschillende tekst codering voor zachte magische testen,.

    tokens
        negeren vanwege achterwaartse compatibiliteit

    cdf Toont details van Compound Document Files.

    compress
        Controleert, maar kijkt ook in, gecomprimeerde bestanden.

    csv Controleert Comma Separated Value bestanden.

    elf Toont ELF bestand details, mits soft magic tests zijn aangezet en de elf magic werd gevonden.

    json
        Onderzoekt JSON (RFC-7159) bestanden door ze te ontleden ten behoeve van compliance.

    soft
        Onderzoek magische bestanden,

    tar Onderzoekt tar bestanden door de controlesom van de 512 bytes tar kop te verifiëren. Uitsluiten van deze test kan meer gedetailleerde inhoud beschrijving op leveren door het gebruik van de soft magic methode.

    text
        Een synoniem voor ‘ascii’.

- -exclude-quiet
    Like - -exclude but ignore tests that file does not know about. This is intended for compatibility with older versions of file.

- -uitbreiding
    Toon een slash-gescheiden lijst van valide uitbreidingen voor het gevonden bestandstype.

-F, - -separator separator
    Gebruik de opgegeven tekst als scheider tussen de bestandsnaam en het terug gegeven resultaat. Standaard: ‘’:.

-f, - -files-from NAMENBESTAND
    Lees de namen van de te onderzoeken bestanden van NAMENBESTAND (één per regel) vóór de argumenten lijst. NAMENBESTAND of tenminste één bestandsnaam argument moet aanwezig zijn; om de standaard invoer te testen, gebruik ``-'' als een bestandsnaam argument.

-h, - -no-dereference
    This option causes symlinks not to be followed (on systems that support symbolic links). This is the default if the environment variable POSIXLY_CORRECT is not defined.

-i, - -mime
    Causes the file command to output mime type strings rather than the more traditional human readable ones. Thus it may say ‘text/plain; charset=us-ascii’ rather than “ASCII text”.

- -mime-type, - -mime-encoding
    Zoals -i, maar toon alleen de opgegeven elementen.

-k, - -keep-going
    Stop niet bij de eerste overeenkomst, ga door. Volgende overeenkomsten zullen de tekst ‘\012- ’ toegevoegd hebben. (zie de -r optie, je een nieuwe regel wenst). Het magisch patroon met de grootste sterkte (zie de -l optie) komt eerst.

-l, - -list
    Toont een lijst van patronen en hun sterkte, in dalende volgorde gesorteerd door magic(5) sterkte die wordt gebruikte om de overeenkomst te zoeken (zie ook de -k optie).

-L, - -dereference
    This option causes symlinks to be followed, as the like-named option in ls(1) (on systems that support symbolic links). This is the default if the environment variable POSIXLY_CORRECT is defined.

-m, - -magic-file LIJST
    Geef een alternatieve lijst van bestandsnamen of mappen op die magische nummers bevatten. Dit kan een enkel bestand zijn, of een dubbelepunten gescheiden lijst van bestanden. Als een gecompileerd magisch bestand werd gevonden langs een bestand of map, dan wordt dit gebruikt.

-N, - -no-pad
    Vul bestandsnamen niet aan zodat die passen in de uitvoer.

-n, - -no-buffer
    Dwing doorspoelen van standaard uitvoer na het onderzoeken van elk bestand. Dit is alleen zinvol als een lijst bestanden wordt onderzocht. Het is bedoeld om door programma's gebruikt te worden wanneer ze de bestands-soort uitvoer van een pijp willen.

-p, - -preserve-date
    Op systemen die utime(3) of utimes(2) ondersteunen, probeer om de toegangstijd van geanalyseerde bestanden te bewaren, op te doen alsof file ze nooit heeft gelezen.

-P, - -parameter naam=waarde
    Stel parameter limieten in.
    Naam | Standaard | Verklaring
    bytes | 1048576 | maximum aantal bytes om te lezen van een bestand
    elf_notes | 256 | max ELF notes verwerkt
    elf_phnum | 2048 | max ELF programma secties verwerkt
    elf_shnum | 32768 | max ELF secties verwerkt
    encoding | 65536 | max number of bytes to scan for encoding evaluation
    indir | 50 | recursie limiet voor het indirecte magisch nummer
    indir | 50 | gebruiksteller voor naam/gebruik magisch nummer
    regex | 8192 | lengte limiet voor zoeken van regex

-r, - -raw
    Vertaal niet-afdrukbare tekens naar \ooo. Normaal zal file niet afdrukbare tekens in hun octale representatie tonen.

-s, - -special-files
    Gewoonlijk probeert file alleen bestanden te lezen om het soort te bepalen voor bestanden die stat(2) als gewone bestanden rapporteert. Dit voorkomt problemen omdat lezen van speciale bestanden vreemde consequenties kan hebben. Het opgeven van de -s optie zorgt dat file ook de argumenten leest die blok- of karakter-speciale bestanden zijn. Dit is zinvol om het bestand systeem type van de gegevens in de schijf partities te bepalen, die blok-speciale bestanden zijn. Deze optie zorgt dat file de bestandsgrootte zoals gegeven door stat(2) negeert omdat dat op sommige systemen nul rapporteert voor ruwe schijf partities.

-S, - -no-sandbox
    On systems where libseccomp (https://github.com/seccomp/libseccomp) is available, the -S option disables sandboxing which is enabled by default. This option is needed for file to execute external decompressing programs, i.e. when the -z option is specified and the built-in decompressors are not available. On systems where sandboxing is not available, this option has no effect.

-v, - -version
    Toon de versie van het programma en stop.

-z, - -uncompress
    Probeer in gecomprimeerde bestanden te kijken.

-Z, - -uncompress-noreport
    Probeer in gecomprimeerde bestanden te kijken, maar rapporteer alleen informatie over de inhoud niet over de compressie.

-0, - -print0
    Geef een nul-teken ‘\0’ na de bestandsnaam. Vriendelijk voor cut(1) de uitvoer. Dit heeft geen invloed op de scheider, die wordt nog afgedrukt.

    Als deze optie meerdere malen herhaald wordt, dan toont file alleen de bestandsnaam gevolgd door een nul, gevolgd door een beschrijving (of FOUT: tekst) gevolgd door een tweede nul voor elk item.

--help
    Een hulptekst tonen en stoppen.

OMGEVING
De omgevingsvariabele MAGIC kan gebruikt worden om het standaard magische nummers bestand te zetten. Als deze variabele is gezet dan zal file niet proberen om $HOME/.magic te openen. file voegt “.mgc” toe aan de variabele indien toepasbaar. De omgevingsvariabele POSIXLY_CORRECT bepaald (op systemen die symbolische koppelingen ondersteunen), of file probeert om symbolische koppelingen te volgen of niet. Als file is gezet dan worden symbolische koppelingen gevolgd, anders niet. Dit wordt mede bepaald door de -L en -h opties.

BESTANDEN
/usr/share/file/misc/magic.mgc
    Standaard lijst magische nummers.
/usr/share/file/misc/magic
    Map waar de standaard magische nummer bestanden staan.

EIND WAARDE
file stopt met 0 als de operatie succesvol was of >0 als een fout is opgetreden. De volgende codes zorgen voor diagnostische berichten, maar hebben geen invloed op de stop code (zoals POSIX vereist), behalve als -E werd opgegeven:
•   Bestand niet gevonden
•   Geen rechten om het bestand te lezen
•   Het soort van het bestand kon niet worden bepaald

VOORBEELDEN

    $ file file.c file /dev/{wd0a,hda}
    file.c:	  C program text
    file:	  ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
    	  dynamically linked (uses shared libs), stripped
    /dev/wd0a: block special (0/0)
    /dev/hda: block special (3/0)
    $ file -s /dev/wd0{b,d}
    /dev/wd0b: data
    /dev/wd0d: x86 boot sector
    $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
    /dev/hda:   x86 boot sector
    /dev/hda1:  Linux/i386 ext2 filesystem
    /dev/hda2:  x86 boot sector
    /dev/hda3:  x86 boot sector, extended partition table
    /dev/hda4:  Linux/i386 ext2 filesystem
    /dev/hda5:  Linux/i386 swap file
    /dev/hda6:  Linux/i386 swap file
    /dev/hda7:  Linux/i386 swap file
    /dev/hda8:  Linux/i386 swap file
    /dev/hda9:  empty
    /dev/hda10: empty
    $ file -i file.c file /dev/{wd0a,hda}
    file.c:	     text/x-c
    file:	     application/x-executable
    /dev/hda:    application/x-not-regular-file
    /dev/wd0a:   application/x-not-regular-file

ZIE OOK
hexdump(1), od(1), strings(1), magic(5)

VOLDOET AAN
Men denkt dat dit programma de System V Interface Definitie van FILE(CMD) overstijgt, voor zover dat te bepalen is uit de vage taal daarin. Zijn gedrag is voor het grootste gedeelte overeenkomstig met het System V programma met dezelfde naam. Deze versie kent echter meer magie, dus zal het in veel gevallen vaak andere (hoewel meer precieze) uitvoer produceren .

Het enige echte verschil tussen deze versie en System V is dat deze versie witruimte als een begrenzer behandeld, zodat spaties in patroon-strings geëscape't moeten worden. Bijvoorbeeld:

    10	string	language impress	(imPRESS data)

in een bestaand magisch bestand zou veranderd moeten worden in

    10	string	language\ impress	(imPRESS data)

Als toevoeging, in deze versie, als een patroon tekst een backslash bevat, dan moet deze ge-escaped worden. Bijvoorbeeld

    0	string		\begindata	Andrew Toolkit document

in een bestaand magisch bestand zou veranderd moeten worden in

    0	string		\\begindata	Andrew Toolkit document

SunOS uitgave 3.2 en later van Sun Microsystems heeft een file opdracht afgeleid van die van System V, maar met enige uitbreidingen. Mijn versie verschilt weinig van die van Sun. Het heeft de ‘’ operator uitbreiding, gebruikt als in bijvoorbeeld:

    16	long0x7fffffff	0		not stripped

BEVEILIGING
On systems where libseccomp (https://github.com/seccomp/libseccomp) is available, file is enforces limiting system calls to only the ones necessary for the operation of the program. This enforcement does not provide any security benefit when file is asked to decompress input files running external programs with the -z option. To enable execution of external decompressors, one needs to disable sandboxing using the -S option.

MAGISCHE MAP
De magische bestand-items zijn verzameld van verschillende bronnen, vooral USENET, en aangereikt door verschillende auteurs. Christos Zoulas (adres onder) ontvangt aanvullingen of bijgewerkte magische bestand-items. Een consolidatie van magische bestand-items zal periodiek verspreidt worden.

De volgorde van items in het magische bestand is belangrijk. Afhankelijk van welk systeem u gebruikt kan de volgorde waarin ze bij elkaar gezet zijn verkeerd zijn. Als je oude file commando een magisch bestand gebruikt, bewaar dan het oude magisch bestand keep the old magic voor vergelijking doeleinden (hernoem het naar /usr/share/file/misc/magic.orig).

GESCHIEDENIS
Er was een file opdracht in elke UNIX sinds tenminste "Research Version 4" (handleiding dateert van november 1973). De System V versie introduceerde één belangrijke grote verandering: de externe lijst met magische nummer soorten. Dit maakte het programma iets langzamer maar maakte het veel flexibeler.

Dit op System V versie gebaseerde programma werd geschreven door Ian Darwin <ian@darwinsys.com> zonder naar iemands anders broncode te kijken.

John Gilmore bewerkte de code uitgebreid en maakte het beter dan de eerste versie. Geoff Collyer vond verschillende onhandigheden en leverde enkele magische bestand-ingangen. Het programma heeft zich sindsdien continue ontwikkeld. Veranderd door Rob McMahon, <cudcv@warwick.ac.uk>, 1989.

Aangepast door Guy Harris, <guy@netapp.com>, 1993.

Veranderingen door Ian Darwin en verschillende auteurs waaronder Christos Zoulas <christos@astron.com>, 1990-1999.

Gewijzigd door Chris Lowth <chris@lowth.com>, 2000: zorg dat de -i optie mime type teksten maakt, gebruik een alternatief magisch bestand en interne logica.

Gewijzigd door Eric Fischer <enf@pobox.com>, juli, 2000, identificeert teken codes en een poging om talen van niet-ASCII bestanden te identificeren.

Gewijzigd door Reuben Thomas <rrt@sc3d.org>, 2007-2011, om MIME support te verbeteren, voeg MIME en niet-MIME magie samen, ondersteuning mappen, als ook magische bestanden, los bugs op, verbeter veel magic, verbeter het bouw systeem, verbeter de documentatie, en herschrijf de Python bindings in pure Python.

De lijst met bijdragers aan de ‘magic’ map (magische bestanden) is te lang om hier op te nemen. Je weet wie je bent, dank je wel! Veel namen van bijdragers zijn opgenomen in de bron bestanden.

WETTELIJK BERICHT
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999. Gedekt door de het standaard Berkeley Software Distribution copyright; zie het bestand COPYING in de bron distributie.

De bestanden tar.h en is_tar.c zijn geschreven door John Gildmore voor zijn public-domain tar(1) programma, en zijn geen onderdeel van bovenstaande licentie.

BUGS
Rapporteer bugs en stuur patches naar de bugtracker op https://bugs.astron.com/ of de mailing lijst op <file@astron.com> (bezoek https://mailman.astron.com/mailman/listinfo/file eerst om je te abonneren).

TODO
Verbeter de uitvoer zodat de testen voor MIME en APPLE vlaggen onnodig zijn op veel plekken, en de uitvoer alleen op één plek wordt gedaan. Nu is een ontwerp nodig. Suggestie: plaats mogelijke uitvoer in een lijst, selecteer vervolgens de laatst geplaatste (beter, je hoopt) waarde aan het einde, of gebruik een standaard indien de lijst leeg is. Dit zou de evaluatie niet moeten vertragen.

De afhandeling van MAGIC_CONTINUE en afdrukken van \012- tussen items is onhandig en gecompliceerd; herstructureer en centraliseer.

Some of the encoding logic is hard-coded in encoding.c and can be moved to the magic files if we had a !:charset annotation.

Ga door met oplossen van alle magische bugs. Zie Debian BTS voor een goede bron.

Bewaar willekeurige lange teksten, bijvoorbeeld voor %s patronen, opdat die getoond kunnen worden. Lost Debian bug 271672 op. Dit kan gedaan door het toekennen van teksten in een tekst-vat, en het bewaren van het tekst-vat aan het einde van het magisch bestand en het omzetten van alle tekst wijzers naar de relatieve of van het tekst-vat.

Voeg syntaxis toe voor relatieve plaatse na het huidige niveau (Debian bug #466037).

Activeer bestand -ki, m.a.w. geef meerdere MIMI typen.

Voeg een zip bibliotheek toe zodat we kunnen kijken in Office2007 documenten om meer details van hun inhoud te kunnen zien.

Voeg een optie toe om URL´s te tonen van de bron van de bestands omschrijvingen.

Het combinatie script zoekt en voegt een manier toe om executable namen naar MIME types te laten wijzen (b.v. maak een magisch nummer voor !:mime dat er voor zorgt dat de resulterende tekst kan worden gezocht in een tabel). Dit voorkomt dat we hetzelfde magisch nummer meerdere malen moeten toevoegen voor elke nieuwe hash-bang vertaler.

Als een bestand omschrijving bestaat, dan slaan we over en passen de buffer aan in plaats van het onhandige buffer beheer dat we nu toepassen.

Gebruik “name” om “use” om te controleren op consistentie bij het compileren (duplicaat “name”, “use” wijzend naar ongedefinieerd “name” ). Maak “name” / “use” efficiënter door een gesorteerde lijst van namen te bewaren. Speciaal-geval ^ om endianness om te draaien in de ontleder zodat het niet ge-escaped moet worden, documenteer dit.

If the offsets specified internally in the file exceed the buffer size ( HOWMANY variable in file.h), then we don't seek to that offset, but we give up. It would be better if buffer managements was done when the file descriptor is available so we can seek around the file. One must be careful though because this has performance and thus security considerations, because one can slow down things by repeateadly seeking.

There is support now for keeping separate buffers and having offsets from the end of the file, but the internal buffer management still needs an overhaul.

BESCHIKBAARHEID
U kunt de laatste versie van de originele auteur verkrijgen via anonymous FTP op ftp.astron.com in de map /pub/file/file-X.YZ.tar.gz. De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com> Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org