{
  "name": "file",
  "description": "Determine file type",
  "options": [
    {
      "names": [
        "--help"
      ],
      "description": "Print a help message and exit"
    },
    {
      "names": [
        "--apple"
      ],
      "description": "Causes the file command to output the file type and creator code\nas used by older MacOS versions.  The code consists of eight\nletters, the first describing the file type, the latter the\ncreator.  This"
    },
    {
      "names": [
        "--brief",
        "-b"
      ],
      "description": "Do not prepend filenames to output lines (brief mode)"
    },
    {
      "names": [
        "--checking-printoug",
        "-c"
      ],
      "description": "Cause a checking printout of the parsed form of the magic file.\nThis is usually used in conjunction with the -m option to debug a\nnew magic file before installing it"
    },
    {
      "names": [
        "--compile",
        "-C"
      ],
      "description": "Write a magic.mgc output file that contains a pre-parsed version\nof the magic file or directory"
    },
    {
      "names": [
        "-d"
      ],
      "description": "Apply the default system tests; this is the default behavior\nunless -M is specified"
    },
    {
      "names": [
        "-D"
      ],
      "description": "Print debugging messages"
    },
    {
      "names": [
        "-E"
      ],
      "description": "On filesystem errors (file not found etc), instead of handling\nthe error as regular output as POSIX mandates and keep going,\nissue an error message and exit"
    },
    {
      "names": [
        "--exclude",
        "-e"
      ],
      "description": "Exclude the test named in testname from the list of tests made to\ndetermine the file type",
      "takes_arg": true,
      "arg": {
        "name": "testname",
        "suggestions": [
          "apptype",
          "ascii",
          "encoding",
          "token",
          "cdf",
          "compress",
          "csv",
          "elf",
          "json",
          "soft",
          "tar"
        ]
      }
    },
    {
      "names": [
        "--exclude-quiet"
      ],
      "description": "Like --exclude but ignore tests that file does not know about.\nThis is intended for compatibility with older versions of file"
    },
    {
      "names": [
        "--extension"
      ],
      "description": "Print a slash-separated list of valid extensions for the file\ntype found"
    },
    {
      "names": [
        "--separator",
        "-F"
      ],
      "description": "Use the specified string as the separator between the filename\nand the file result returned",
      "takes_arg": true,
      "arg": {
        "name": "separator",
        "suggestions": [
          "."
        ]
      }
    },
    {
      "names": [
        "--files-from",
        "-f"
      ],
      "description": "Read the names of the files to be examined from namefile (one per\nline) before the argument list.  Either namefile or at least one\nfilename argument must be present; to test the standard input,\nuse ‘-",
      "takes_arg": true,
      "arg": {
        "name": "namefile"
      }
    },
    {
      "names": [
        "--no-dereference",
        "-h"
      ],
      "description": "This option causes symlinks not to be followed (on systems that\nsupport symbolic links)"
    },
    {
      "names": [
        "-i"
      ],
      "description": "If the file is a regular file, do not classify its contents"
    },
    {
      "names": [
        "--mime",
        "-I"
      ],
      "description": "Causes the file command to output mime type strings rather than\nthe more traditional human readable ones.  Thus it may say\n'text/plain; charset=us-ascii' rather than \"ASCII text\""
    },
    {
      "names": [
        "--mime-type",
        "--mime-encoding"
      ],
      "description": "Like -I, but print only the specified element(s)"
    },
    {
      "names": [
        "--keep-going",
        "-k"
      ],
      "description": "Don't stop at the first match, keep going.  Subsequent matches\nwill be have the string '\\012- ' prepended.  (If you want a\nnewline, see the -r option.)  The magic pattern with the highest\nstrength (se"
    },
    {
      "names": [
        "--list",
        "-l"
      ],
      "description": "Shows a list of patterns and their strength sorted descending by\nmagic(5) strength which is used for the matching (see also the -k\noption)"
    },
    {
      "names": [
        "--dereference",
        "-L"
      ],
      "description": "This option causes symlinks to be followed, as the like-named\noption in ls(1) (on systems that support symbolic links).  This\nis the default behavior"
    },
    {
      "names": [
        "--magic-file",
        "-m"
      ],
      "description": "Specify an alternate list of files and directories containing\nmagic.  This can be a single item, or a colon-separated list.  If\na compiled magic file is found alongside a file or directory, it\nwill be",
      "takes_arg": true,
      "arg": {
        "name": "list",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-M"
      ],
      "description": "Like -m, except that the default rules are not applied unless -d\nis specified",
      "takes_arg": true,
      "arg": {
        "name": "list",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--no-buffer",
        "-n"
      ],
      "description": "Force stdout to be flushed after checking each file.  This is\nonly useful if checking a list of files.  It is intended to be\nused by programs that want filetype output from a pipe"
    },
    {
      "names": [
        "--preserve-data",
        "-p"
      ],
      "description": "On systems that support utime(3) or utimes(2), attempt to\npreserve the access time of files analyzed, to pretend that file\nnever read them"
    },
    {
      "names": [
        "--parameter",
        "-P"
      ],
      "description": "Set various parameter limits",
      "takes_arg": true,
      "arg": {
        "name": "name=value"
      }
    },
    {
      "names": [
        "--raw",
        "-r"
      ],
      "description": "No operation, included for historical compatibility"
    },
    {
      "names": [
        "--special-files",
        "s"
      ],
      "description": "Normally, file only attempts to read and determine the type of\nargument files which stat(2) reports are ordinary files.  This\nprevents problems, because reading special files may have\npeculiar consequ"
    },
    {
      "names": [
        "--version",
        "-v"
      ],
      "description": "Print the version of the program and exit"
    },
    {
      "names": [
        "--uncompress",
        "-z"
      ],
      "description": "Try to look inside compressed files"
    },
    {
      "names": [
        "--uncompress-noreport",
        "-Z"
      ],
      "description": "Try to look inside compressed files, but report information about\nthe contents only not the compression"
    },
    {
      "names": [
        "--print0",
        "-0"
      ],
      "description": "Output a null character '\u0000' after the end of the filename.  Nice\nto cut(1) the output.  This does not affect the separator, which\nis still printed"
    }
  ],
  "args": [
    {
      "name": "file",
      "description": "File name(s)",
      "is_variadic": true,
      "template": "filepaths"
    }
  ]
}
