mime.types - mime type description file for cups


The mime.types file defines the recognized file types.

Additional file types can be added to mime.types or (preferably) in additional files in the CUPS configuration directory with the extension ".types".

Each line in the mime.types file is a comment, blank, or rule line. Comment lines start with the # character. Rule lines start with the MIME type name and are optionally followed by a series of file recognition rules that are used to automatically identify print and web files:

    super/type rule [ ... ruleN]

MIME type names are case-insensitive and are sorted in ascending alphanumeric order for the purposes of matching. See the "TYPE MATCHING AND PRIORITY" section for more information.

The rules may be grouped using parenthesis, joined using "+" for a logical AND and "," or whitespace for a logical OR, and negated using "!".


Rules take two forms - a filename extension by itself and functions with test values inside parenthesis. The following functions are available:

  • match("pattern")
    Pattern match on filename
  • ascii(offset,length)
    True if bytes are valid printable ASCII (CR, NL, TAB, BS, 32-126)
  • printable(offset,length)
    True if bytes are printable 8-bit chars (CR, NL, TAB, BS, 32-126, 128-254)
  • priority(number)
    Specifies the relative priority of this MIME type. The default priority is 100. Larger values have higher priority while smaller values have lower priority.
  • string(offset,"string")
    True if bytes are identical to string
  • istring(offset,"string")
    True if a case-insensitive comparison of the bytes is identical
  • char(offset,value)
    True if byte is identical
  • short(offset,value)
    True if 16-bit integer is identical
  • int(offset,value)
    True if 32-bit integer is identical
  • locale("string")
    True if current locale matches string
  • contains(offset,range,"string")
    True if the range contains the string


String constants can be specified inside quotes ("") for strings containing whitespace and angle brackets (<>) for hexadecimal strings.


When CUPS needs to determine the MIME type of a given file, it checks every MIME type defined in the .types files. When two types have the same matching rules, the type chosen will depend on the type name and priority, with higher- priority types being used over lower-priority ones. If the types have the same priority, the type names are sorted alphanumerically in ascending order and the first type is chosen.

For example, if two types "text/bar" and "text/foo" are defined as matching the extension "doc", normally the type "text/bar" will be chosen since its name is alphanumerically smaller than "text/foo". However, if "text/foo" also defines a higher priority than "text/bar", "text/foo" will be chosen instead.


classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), printers.conf(5),


Copyright 2007-2009 by Apple Inc.