MAGIC(5)

NOM
magic - Fichier de motifs magiques de la commande file(1)

DESCRIPTION
This manual page documents the format of magic files as used by the file(1) command, version 5.47. The file(1) command identifies the type of a file using, among other tests, a test for whether the file contains certain “magic patterns”. The database of these “magic patterns” is usually located in a binary file in /usr/share/misc/magic.mgc or a directory of source text magic pattern fragment files in /usr/share/misc/magic. The database specifies what patterns are to be tested for, what message or MIME type to print if a particular pattern is found, and additional information to extract from the file.

Le format des multiples fichiers source utilisés pour construire la base de données est le suivant : chaque ligne d’un fichier spécifie un test à effectuer. Chaque test compare les données situées à un certain décalage dans le fichier avec une valeur d’octet, une chaîne ou une valeur numérique. Si le test est positif, un message est affiché. Une ligne contient les champs suivants :

décalage
    Un nombre spécifiant le décalage (en octets) dans le fichier auquel se trouvent les données à tester. Ce décalage peut être un nombre négatif :
    •   s’il s’agit du premier décalage direct de l’entrée magique (au niveau de continuation 0), auquel cas il sera interprété comme un décalage depuis la fin du fichier en allant en arrière. Cela ne fonctionne que si le fichier est un fichier normal et possède un descripteur de fichier.
    •   s’il s’agit d’un décalage de continuation relatif à la fin du dernier champ de niveau supérieur (&).
    Si le décalage commence par le symbole « + », tous les décalages seront interprétés par rapport au début du fichier (comportement par défaut).

type
    Le type des données à tester. Les valeurs possibles sont :

    byte
        Une valeur sur un octet.

    short
        Une valeur sur deux octets dans l’ordre des octets natif de la machine utilisée.

    long
        Une valeur sur quatre octets dans l’ordre des octets natif de la machine utilisée.

    quad
        Une valeur sur huit octets dans l’ordre des octets natif de la machine utilisée.

    float
        Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits dans l’ordre des octets natif de la machine utilisée.

    double
        Un nombre en virgule flottante IEEE en double précision sur 64 bits dans l’ordre des octets natif de la machine utilisée.

    string
        A string of bytes. The string type specification can be optionally followed by a /<width> option and optionally followed by a set of flags [bCcftTtWw]*. Slash characters can be used to separate options for readability. The width limits the number of characters to be copied. Zero means all characters. The following flags are supported:
        b   Forcer un test de fichier binaire.
        C   Use upper case insensitive matching: upper case characters in the magic match both lower and upper case characters in the target, whereas lower case characters in the magic only match upper case characters in the target. (not valid for regex)
        c   Use lower case insensitive matching: lower case characters in the magic match both lower and upper case characters in the target, whereas upper case characters in the magic only match upper case characters in the target. (not valid for regex) To do a complete case insensitive match, specify both “c” and “C”.
        f   La chaîne mise en correspondance doit être un mot entier, pas une portion de mot.
        s   Don't include the match length in the offset computation. (only valid for search and regex)
        T   Trim the string, i.e. leading and trailing whitespace is deleted before the string is printed.
        t   Forcer le test de fichier texte.
        W   Compact whitespace in the target, which must contain at least one whitespace character. (not valid for regex) If the magic has n consecutive blanks, the target needs at least n consecutive blanks to match.
        w   Treat every blank in the magic as an optional blank. (not valid for regex)

    pstring
        Une chaîne de style Pascal où le premier byte/short/int est interprété comme la longueur non signée. La longueur par défaut est sur un octet et peut être spécifiée à l’aide d’un modificateur. Les modificateurs pris en charge sont les suivants :
        B   Une longueur sur 1 octet (par défaut).
        H   Une longueur sur 2 octets gros-boutistes.
        h   Une longueur sur 2 octets petit-boutistes.
        L   Une longueur sur 4 octets gros-boutistes.
        l   Une longueur sur 4 octets petit-boutistes.
        J   Le champ longueur est inclus dans la longueur totale.
        La chaîne n’est pas terminée par un caractère NULL. « J » est préféré à « I », car ce type de longueur est propre au format JPEG.

    date
        Une valeur sur 4 octets interprétée comme une date de style UNIX.

    qdate
        Une valeur sur 8 octets interprétée comme une date de style UNIX.

    ldate
        Une valeur sur 4 octets interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    qldate
        Une valeur sur 8 octets interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    qwdate
        Une valeur sur 8 octets interprétée comme une date de style Windows.

    msdosdate
        Une valeur sur 2 octets interprétée comme une date de style FAT/DOS.

    msdostime
        Une valeur sur 2 octets interprétée comme une heure de style FAT/DOS.

    beid3
        Une longueur ID3 sur 32 bits dans l’ordre gros-boutiste.

    beshort
        Une valeur sur 2 octets dans l’ordre gros-boutiste.

    belong
        Une valeur sur 4 octets dans l’ordre gros-boutiste.

    bequad
        Une valeur sur 8 octets dans l’ordre gros-boutiste.

    befloat
        Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits en ordre gros-boutiste.

    bedouble
        Un nombre en virgule flottante de l’IEEE en double précision sur 64 bits en ordre gros-boutiste.

    bedate
        Une valeur sur 4 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX.

    beqdate
        Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX.

    beldate
        Une valeur sur 4 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    beqldate
        Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    beqwdate
        Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style Windows.

    bemsdosdate
        Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une date de style FAT/DOS.

    bemsdostime
        Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une heure de style FAT/DOS.

    bestring16
        Une chaîne unicode de caractères sur 2 octets (UCS16) dans l’ordre gros-boutiste.

    leid3
        Une longueur ID3 sur 32 bits dans l’ordre petit-boutiste.

    leshort
        Une valeur sur 2 octets dans l’ordre petit-boutiste.

    lelong
        Une valeur sur 4 octets dans l’ordre petit-boutiste.

    lequad
        Une valeur sur 8 octets dans l’ordre petit-boutiste.

    lefloat
        Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits en ordre petit-boutiste.

    ledouble
        Un nombre en virgule flottante de l’IEEE en double précision sur 64 bits en ordre petit-boutiste.

    ledate
        Une valeur sur 4 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX.

    leqdate
        Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX.

    leldate
        Une valeur sur 4 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    leqldate
        Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    leqwdate
        Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style Windows.

    lemsdosdate
        A two-byte value in little-endian byte order, interpreted as FAT/DOS-style date.

    lemsdostime
        A two-byte value in little-endian byte order, interpreted as FAT/DOS-style time.

    lestring16
        Une chaîne unicode à caractères sur 2 octets (UCS16) dans l’ordre petit-boutiste.

    melong
        Une valeur sur 4 octets dans l’ordre mi-boutiste (PDP-11).

    medate
        Une valeur sur 4 octets dans l’ordre mi-boutiste (PDP-11) interprétée comme une date de style UNIX.

    meldate
        Une valeur sur 4 octets dans l’ordre mi-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.

    indirect
        Consulter à nouveau la base de données magique à partir du décalage donné. Le décalage du magique indirect est par défaut absolu dans le fichier, mais il est possible d’indiquer qu’il est relatif au début de l’entrée en spécifiant /r.

    name
        Define a “named” magic instance that can be called from another use magic entry, like a subroutine call. Named instance direct magic offsets are relative to the offset of the previous matched entry, but indirect offsets are relative to the beginning of the file as usual. Named magic entries return true if there was a match in the evaluation of the entry, or if there was a previous existing match.

    use Appel récursif du magique nommé en débutant au décalage actuel. Si le nom du magique référencé est préfixé d’un « ^ », le boutisme (endianness) est inversé ; par exemple, si le magic mentionne leshort, il sera traité comme beshort, et vice-versa. Cela permet d’éviter de dupliquer les règles pour différents boutismes.

    regex
        Une correspondance d’expression rationnelle dans la syntaxe des expressions rationnelles POSIX étendue (comme egrep(1)). Le traitement des expressions rationnelles peut prendre un temps considérable et leurs performances sont difficiles à prévoir ; leur utilisation est donc déconseillée. Pour une utilisation en production, leurs performances doivent être vérifiées avec soin. La taille de la chaîne à rechercher doit aussi être limitée en spécifiant /<taille> pour éviter des problèmes de performances lors du parcours de grands fichiers. La spécification du type peut aussi être suivie de /[c][s][l]. Le symbole « c » indique une recherche de correspondance insensible à la casse, alors que le symbole « s » définit le décalage au décalage du début des données qui correspondent au lieu de la fin. Le modificateur « l » fait que la limite de taille exprime un nombre de lignes au lieu d’un nombre d’octets. Les lignes sont délimitées par le délimiteur de ligne natif de la plateforme. Si un nombre de lignes est spécifié, un nombre implicite d’octets est aussi calculé en supposant que chaque ligne a une taille de 80 caractères. Si aucun nombre d’octets ou de lignes n’est spécifié, la recherche sera automatiquement limitée à 8 Kio. « ^ » et « $ » ne correspondent pas au début et à la fin du fichier, mais au début et à la fin de lignes individuelles, respectivement.

    search
        Une recherche de chaîne littérale à partir du décalage donné. Les symboles modificateurs sont les mêmes que ceux utilisés pour les motifs de type string. L’expression de recherche doit contenir l’étendue de recherche sous la forme /nombre, c’est-à-dire le nombre de positions auxquelles une correspondance positive est recherchée, à partir du décalage de départ. Ce type convient pour les recherches de grandes expressions binaires avec des décalages variables et utilisant des échappements \ pour les caractères spéciaux. L’ordre des symboles modificateurs et du nombre n’a pas d’importance.

    default
        Cette valeur n’a pas de type et doit être utilisée avec le test x (qui renvoie toujours vrai). Elle correspond lorsqu’aucun autre test n’a déjà correspondu à ce niveau de continuation. Pour effacer ces tests correspondant pour un niveau de continuation, utiliser le test clear.

    clear
        Ce test renvoie toujours vrai et efface le symbole de correspondance pour ce niveau de continuation. Il est à utiliser avec le test default.

    der Parcourir le fichier en le considérant comme un fichier de certificat DER. Le champ test est utilisé comme un type DER qui doit faire l’objet d’une recherche de correspondance. Les types DER sont : eoc, bool, int, bit_str, octet_str, null, obj_id, obj_desc, ext, real, enum, embed, utf8_str, rel_oid, time, res2, seq, set, num_str, prt_str, t61_str, vid_str, ia5_str, utc_time, gen_time, gr_str, vis_str, gen_str, univ_str, char_str, bmp_str, date, tod, datetime, duration, oid-iri et rel-oid-iri. Ces types peuvent être suivis d’une valeur numérique qui indique la taille du champ en octets.

    guid,

    leguid,

    beguid
        Un identificateur globalement unique analysé et affiché comme XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Son format est une chaîne.

    décalage
        C’est une valeur sur 8 octets indiquant le décalage actuel dans le fichier. Elle permet de déterminer la taille du fichier ou du tampon magique. Par exemple, les entrées magiques :

            -0	offset	x	ce fichier a une taille de %lld octets
            -0	offset	<=100	doit être supérieur à 100 \
                octets et ne fait que %lld

    octal
        Une chaîne représentant un nombre octal.

    À des fins de compatibilité avec le « Single UNIX Standard », les spécificateurs de type dC et d1 sont équivalents à byte, les spécificateurs uC et u1 sont équivalents à ubyte, les spécificateurs dS et d2 sont équivalents à short, les spécificateurs uS et u2 sont équivalents à ushort, les spécificateurs dI, dL et d4 sont équivalents à long, les spécificateurs uI, uL et u4 sont équivalents à ulong, le spécificateur d8 est équivalent à quad, le spécificateur u8 est équivalent à uquad et le spécificateur s est équivalent à string. En outre, le spécificateur dQ est équivalent à quad et le spécificateur uQ est équivalent à uquad.

    Chaque motif magique du niveau le plus haut (voir ci-après pour une explication à propos des niveaux) est classé comme de type texte ou binaire en fonction des types utilisés. Les types “regex” et “search” sont classés comme tests de type texte, à moins que des caractères non imprimables ne soient utilisés dans le motif. Tous les autres tests sont classés comme binaires. Un motif du niveau le plus haut est considéré comme texte de test lorsque tous ses motifs sont de type texte ; dans le cas contraire, il est considéré comme motif binaire. Lors de la recherche du type d’un fichier, les motifs binaires sont essayés en premier ; si aucune correspondance n’est trouvée et si le contenu du fichier ressemble à du texte, son encodage est déterminé et les motifs de type texte sont recherchés.

    The numeric types may optionally be followed by an operand and a numeric value, to specify that the value is to be modified according to the operand and the numeric value before any comparisons are done. The following operands are supported: &, |,, +, -, *, /, %. Prepending a u to the type indicates that ordered comparisons should be unsigned.

test
    La valeur à comparer avec la valeur issue du fichier. Si le type est numérique, cette valeur est spécifiée au format C ; si le type est une chaîne, cette valeur est spécifiée comme une chaîne C avec les échappements habituellement permis (par exemple \n pour une nouvelle ligne).

    Les valeurs numériques peuvent être préfixées d’un caractère indiquant l’opération à exécuter. Il peut s’agir de = pour indiquer que la valeur issue du fichier doit être égale à la valeur spécifiée, < pour indiquer que la valeur issue du fichier doit être inférieure à la valeur spécifiée, > pour indiquer que la valeur issue du fichier doit être supérieure à la valeur spécifiée, & pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits à 1 de la valeur spécifiée doivent être à 1, ^ pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits à 1 de la valeur spécifiée doivent être à 0, ~ pour indiquer que la valeur qui suit doit être inversée ou x pour indiquer que toute valeur correspondra.Si aucun caractère n’est indiqué, il est supposé être =. Les opérateurs &, ^ et ~ ne fonctionnent pas avec les nombres en virgule flottante et ceux en double précision. L’opérateur! spécifie que la ligne correspond si le test échoue.

    Les valeurs numériques sont spécifiées au format C ; par exemple, 13 est décimal, 013 est octal et 0x13 est hexadécimal.

    Les types date ne font pas l’objet d’opérations numériques ; à la place, la valeur numérique est interprétée comme un décalage.

    Pour les valeurs de type chaîne, la chaîne du fichier doit correspondre à la chaîne spécifiée. Les opérateurs =, < et > (mais pas &) peuvent s’appliquer aux chaînes. La taille utilisée pour la recherche de correspondance est celle de l’argument chaîne dans le fichier magique. Cela signifie qu’une ligne peut correspondre à toute chaîne non vide (en général utilisée ensuite pour afficher la chaîne) avec >\0 (car toute chaîne non vide est supérieure à la chaîne vide).

    Les dates sont traitées comme des valeurs numériques selon leur représentation interne.

    Le test spécial x renvoie toujours vrai.

message
    Le message à afficher si la correspondance est positive. Si la chaîne contient une spécification de format de type printf(3), la valeur issue du fichier (à laquelle aura été appliqué tout masque spécifié) est affichée en utilisant le message comme chaîne de format. Si la chaîne commence par « \b », le message affiché est le reste de la chaîne sans espace ajoutée avant : plusieurs correspondances sont normalement séparées par des espaces uniques.

Les type et créateur APPLE de caractères APPLE 4+4 peuvent être spécifiés sous la forme :

    !:apple	CREATYPE

Une liste d’extensions de nom de fichier couramment rencontrées séparées par des barres obliques peut être spécifiée sous la forme :

    !:ext	ext[/ext...]

autrement dit, la chaîne littérale « !:ext » suivie d’une liste d’extensions couramment rencontrées séparées par des barres obliques ; par exemple, pour les images JPEG :

    !:ext jpeg/jpg/jpe/jfif

Un type MIME est indiqué sur une ligne séparée qui doit être la première ligne ni vide, ni de commentaire après la ligne magique qui identifie le type de fichier, et possède le format suivant :

    !:mime	TYPE_MIME

autrement dit, la chaîne littérale « !:mime » suivie du type MIME.

Une force peut être indiquée sur une ligne séparée qui fait référence à la description magique actuelle et utilise le format suivant :

    !:strength OP VALEUR

L’opérateur OP peut être +, -, * ou / et VALUE est une constante entre 0 et 255. Cette constante est appliquée à la force magique par défaut actuellement calculée en utilisant l’opérateur spécifié.

Certains formats de fichier contiennent des informations supplémentaires qui doivent être affichées avec le type de fichier ou qui impliquent des tests supplémentaires pour déterminer le véritable type du fichier. Ces tests supplémentaires sont introduits par un ou plusieurs caractères > qui précèdent le décalage. Le nombre de > sur la ligne indique le niveau du test ; une ligne sans > au début est considérée comme étant de niveau 0. Les tests sont organisés selon une hiérarchie arborescente : si le test sur une ligne de niveau n réussit, tous les tests suivants de niveau n+1 sont effectués, et les messages affichés si les tests réussissent, jusqu’à ce qu’une ligne de niveau n (ou moins) apparaisse. Pour des fichiers plus complexes, il est possible d’utiliser des messages vides juste pour obtenir l’effet « si/alors » de la façon suivante :

    0      string    MZ
    >0x18  uleshort  <0x40   MS-DOS executable
    >0x18  uleshort  >0x3f   extended PC executable (e.g., MS Windows)

Les décalages ne doivent pas forcément être constants, mais peuvent aussi être lus depuis le fichier en cours d’examen. Si le premier caractère suivant le dernier > est un (, la chaîne après la parenthèse est interprétée comme un décalage indirect. Cela signifie que le nombre après la parenthèse est utilisé comme décalage dans le fichier. Les décalages indirects sont de la forme : (x [[.,][bBcCeEfFgGhHiIlmosSqQ]][+-][ y ]). La valeur de x est utilisée comme décalage dans le fichier. En fonction du spécificateur de type [bBcCeEfFgGhHiIlLmsSqQ], la valeur lue à ce décalage sera un octet, un id3 length, un short ou un long. La valeur est considérée comme signée si « , » est spécifié ou comme non signée si « . » est spécifié. Les types en capitale interprètent le nombre comme une valeur gros-boutiste, alors que les types en minuscule l’interprètent comme une valeur petit-boutiste ; le type m interprète le nombre comme une valeur mi-boutiste (PDP-11). La valeur de y est ajoutée à ce nombre et le résultat est utilisé comme décalage dans le fichier. Si aucun type n’est spécifié, le type par défaut est long. Les types reconnus sont les suivants :
Type Mnémonique Boutisme Taille
bcBC | Byte/Char | N/A | 1
efg | Double | Little | 8
EFG | Double | Big | 8
hs | Half/Short | Little | 2
HS | Half/Short | Big | 2
i | ID3 | Little | 4
I | ID3 | Big | 4
l | Long | Little | 4
L | Long | Big | 4
m | Middle | Middle | 4
o | Octal | Textual | Variable
q | Quad | Little | 8
Q | Quad | Big | 8

De cette manière, les structures de longueur variable peuvent être examinées :

    # Les exécutables MS Windows sont aussi des exécutables MS-DOS valables
    0           string   MZ
    >0x18       uleshort <0x40  MZ executable (MS-DOS)
    # sauter tout le bloc suivant si ce n’est pas un exécutable étendu
    >0x18       uleshort >0x3f
    >>(0x3c.l)  string   PE\0\0 PE executable (MS-Windows)
    >>(0x3c.l)  string   LX\0\0 LX executable (OS/2)

Cette stratégie d’examen a un inconvénient : vous devez vous assurer que quelque chose sera finalement affiché, sinon les utilisateurs pourront obtenir une sortie vide (comme s’il n’y avait ni PE\0\0, ni LE\0\0 dans l’exemple précédent).

Si ce décalage indirect ne peut pas être utilisé directement, des opérations simples sont possibles : ajouter [+-*/%&|^]nombre à la fin du contenu des parenthèses permet de modifier la valeur lue depuis le fichier avant qu’elle ne soit utilisée comme décalage :

    # Les exécutables MS Windows sont aussi des exécutables MS-DOS valables
    0           string   MZ
    # parfois, la valeur à 0x18 est inférieure à celle à 0x40, mais il y a
    # encore un exécutable étendu simplement ajouté à la fin du fichier
    >0x18       uleshort <0x40
    >>(4.s*512) leshort  0x014c  COFF executable (MS-DOS, DJGPP)
    >>(4.s*512) leshort  !0x014c MZ executable (MS-DOS)

Parfois, le décalage exact n’est pas connu, car il dépend de la taille et de la position des champs précédents (quand une indirection a été utilisée auparavant). Il est possible de spécifier un décalage relatif à la fin du dernier champ de plus haut niveau en préfixant le décalage avec « & » :

    0           string   MZ
    >0x18       uleshort >0x3f
    >>(0x3c.l)  string   PE\0\0    PE executable (MS-Windows)
    # le type de CPU suit immédiatement la signature PE
    >>>&0       leshort  0x14c     for Intel 80386
    >>>&0       leshort  0x8664    for x86-64
    >>>&0       leshort  0x184     for DEC Alpha

Les décalages indirects et relatifs peuvent être combinés :

    0             string   MZ
    >0x18         uleshort <0x40
    >>(4.s*512)   leshort  !0x014c MZ executable (MS-DOS)
    # si ce n’est pas COFF, revenir en arrière de 512 octets et ajouter
    # le décalage pris depuis l’octet 2/3, ce qui constitue une autre
    # manière de trouver le début de l’exécutable étendu
    >>>&(2.s-514) string   LE      LE executable (MS Windows VxD driver)

Ou l’autre manière :

    0                 string   MZ
    >0x18             uleshort >0x3f
    >>(0x3c.l)        string   LE\0\0  LE executable (MS-Windows)
    # au décalage 0x80 (-4, car les décalages relatifs commencent à la fin
    # de la correspondance de plus haut niveau) dans l’en-tête LE, on trouve
    # le décalage absolu vers la zone de données où nous recherchons
    # une signature spécifique
    >>>(&0x7c.l+0x26) string   UPX     \b, UPX compressed

Ou même les deux !

    0                string   MZ
    >0x18            uleshort >0x3f
    >>(0x3c.l)       string   LE\0\0 LE executable (MS-Windows)
    # au décalage 0x58 dans l’en-tête LE, on trouve le décalage relatif
    # vers une zone de données où nous recherchons une signature spécifique
    >>>&(&0x54.l-3)  string   UNACE  \b, ACE self-extracting archive

Si vous avez affaire à des paires décalage/taille dans votre fichier, même la seconde valeur dans une expression entre parenthèses peut être obtenue depuis le fichier lui-même en utilisant un autre jeu de parenthèses. Notez que ce décalage indirect supplémentaire est toujours relatif au début du décalage indirect principal.

    0                 string       MZ
    >0x18             uleshort     >0x3f
    >>(0x3c.l)        string       PE\0\0 PE executable (MS-Windows)
    # recherche de la section PE appelée ".idata"...
    >>>&0xf4          search/0x140 .idata
    # ... et aller à la fin de celle-ci calculé à partir de début+taille ;
    # ceux-là sont situés 14 et 10 octets après le nom de section
    >>>>(&0xe.l+(-4)) string       PK\3\4 \b, ZIP self-extracting archive

Si vous avez une liste de valeurs connues à un niveau de continuation particulier, et si vous voulez prévoir une liste de cas avec défaut de style switch :

    # supprimer la correspondance de ce niveau de continuation
    >18	clear	x
    >18	lelong	1	one
    >18	lelong	2	two
    >18	default	x
    # afficher la correspondance par défaut
    >>18	lelong	x	unmatched 0x%x

VOIR AUSSI
file(1) — la commande qui lit ce fichier.

BOGUES
Les formats long, belong, lelong, melong, short, beshort et leshort ne dépendent pas de la taille des types de données C short et long sur la plateforme, bien que la Single UNIX Specification stipule le contraire. Cependant, étant donné que OS X Mountain Lion a réussi la suite de validation de la Single UNIX Specification et fournit une version de file(1) dans laquelle ils ne dépendent pas des tailles des types de données C et qui est compilée pour un environnement sur 64 bits dans lequel long est sur 8 octets au lieu de 4, la suite de validation ne vérifie probablement pas si, par exemple, long fait référence à un item de la même taille que le type de données C long. Il serait ici souhaitable de disposer des noms de type int8, uint8, int16, uint16, int32, uint32, int64 et uint64 et de leurs variantes avec boutisme différent pour indiquer plus clairement que ces types ont les tailles spécifiées.

TRADUCTION
La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3: https://www.gnu.org/licenses/gpl-3.0.html concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.