{
  "name": "tar",
  "description": "Manipulating archive files",
  "parserDirectives": {
    "flagsArePosixNoncompliant": true
  },
  "options": [
    {
      "names": [
        "g",
        "-g",
        "--listed-incremental"
      ],
      "description": "Handle new GNU-format incremental backups",
      "isPersistent": true,
      "exclusiveOn": [
        "G",
        "-G",
        "--incremental"
      ],
      "args": [
        {
          "name": "FILE",
          "description": "The name of a snapshot file"
        }
      ]
    },
    {
      "names": [
        "--hole-detection"
      ],
      "description": "Use METHOD to detect holes in sparse files",
      "isPersistent": true,
      "args": [
        {
          "name": "METHOD",
          "isOptional": true,
          "suggestions": [
            "seek",
            "raw"
          ]
        }
      ]
    },
    {
      "names": [
        "G",
        "-G",
        "--incremental"
      ],
      "description": "Handle old GNU-format incremental backups",
      "isPersistent": true,
      "exclusiveOn": [
        "g",
        "-g",
        "--listed-incremental"
      ]
    },
    {
      "names": [
        "--sparse-version"
      ],
      "description": "Set version of the sparse format to use",
      "isPersistent": true,
      "dependsOn": [
        "S",
        "-S",
        "--sparse"
      ],
      "args": [
        {
          "name": "MAJOR[.MINOR]",
          "suggestions": [
            "0",
            "0.1",
            "1"
          ]
        }
      ]
    },
    {
      "names": [
        "S",
        "-S",
        "--sparse"
      ],
      "description": "Handle sparse files efficiently",
      "isPersistent": true
    },
    {
      "names": [
        "--ignore-command-error"
      ],
      "description": "Ignore subprocess exit codes",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-ignore-command-error"
      ]
    },
    {
      "names": [
        "--no-ignore-command-error"
      ],
      "description": "Treat non-zero exit codes of children as error",
      "isPersistent": true,
      "exclusiveOn": [
        "--ignore-command-error"
      ]
    },
    {
      "names": [
        "--numeric-owner"
      ],
      "description": "Always use numbers for user/group names",
      "isPersistent": true
    },
    {
      "names": [
        "--acls"
      ],
      "description": "Enable POSIX ACLs support",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-acls"
      ]
    },
    {
      "names": [
        "--no-acls"
      ],
      "description": "Disable POSIX ACLs support",
      "isPersistent": true,
      "exclusiveOn": [
        "--acls"
      ]
    },
    {
      "names": [
        "--selinux"
      ],
      "description": "Enable SELinux context support",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-selinux"
      ]
    },
    {
      "names": [
        "--no-selinux"
      ],
      "description": "Disable SELinux context support",
      "isPersistent": true,
      "exclusiveOn": [
        "--selinux"
      ]
    },
    {
      "names": [
        "--xattrs"
      ],
      "description": "Enable extended attributes support",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-xattrs"
      ]
    },
    {
      "names": [
        "--no-xattrs"
      ],
      "description": "Disable extended attributes support",
      "isPersistent": true,
      "exclusiveOn": [
        "--xattrs",
        "--xattrs-exclude",
        "--xattrs-include"
      ]
    },
    {
      "names": [
        "--xattrs-exclude"
      ],
      "description": "Specify the exclude pattern for xattr keys",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-xattrs"
      ],
      "args": [
        {
          "name": "PATTERN",
          "description": "A POSIX regular expression"
        }
      ]
    },
    {
      "names": [
        "--xattrs-include"
      ],
      "description": "Specify the include pattern for xattr keys",
      "isPersistent": true,
      "args": [
        {
          "name": "PATTERN",
          "description": "A POSIX regular expression"
        }
      ]
    },
    {
      "names": [
        "--backup"
      ],
      "description": "Backup before removal",
      "isPersistent": true,
      "args": [
        {
          "name": "CONTROL",
          "isOptional": true,
          "suggestions": [
            "none",
            "t",
            "nil",
            "never"
          ]
        }
      ]
    },
    {
      "names": [
        "C",
        "-C",
        "--directory"
      ],
      "description": "Change to DIR before performing any operations",
      "isPersistent": true,
      "isRepeatable": -1,
      "args": [
        {
          "name": "DIR",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "--newer-mtime"
      ],
      "description": "Work on files whose data changed after the DATE",
      "isPersistent": true,
      "args": [
        {
          "name": "DATE",
          "description": "If DATE starts with / or . it is taken to be a file name",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--no-null"
      ],
      "description": "Disable the effect of the previous --null option",
      "isPersistent": true,
      "dependsOn": [
        "T",
        "-T",
        "--files-from"
      ]
    },
    {
      "names": [
        "--no-recursion"
      ],
      "description": "Avoid descending automatically in directories",
      "isPersistent": true,
      "exclusiveOn": [
        "--recursion"
      ]
    },
    {
      "names": [
        "--no-unquote"
      ],
      "description": "Do not unquote input file or member names",
      "isPersistent": true,
      "exclusiveOn": [
        "--unquote"
      ]
    },
    {
      "names": [
        "--no-verbatim-files-from"
      ],
      "description": "Treat each line read from a file list as if it were supplied in the command line",
      "isPersistent": true,
      "isRepeatable": -1,
      "dependsOn": [
        "T",
        "-T",
        "--files-from"
      ]
    },
    {
      "names": [
        "-null"
      ],
      "description": "Instruct subsequent -T options to read null-terminated names verbatim",
      "isPersistent": true,
      "dependsOn": [
        "T",
        "-T",
        "--files-from"
      ]
    },
    {
      "names": [
        "--recursion"
      ],
      "description": "Recurse into directories",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-recursion"
      ]
    },
    {
      "names": [
        "--suffix"
      ],
      "description": "Backup before removal, override usual suffix",
      "isPersistent": true,
      "dependsOn": [
        "--backup"
      ],
      "args": [
        {
          "name": "STRING"
        }
      ]
    },
    {
      "names": [
        "T",
        "-T",
        "--files-from"
      ],
      "description": "Get names to extract or create from FILE",
      "isPersistent": true,
      "isRepeatable": -1,
      "args": [
        {
          "name": "FILE",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--unquote"
      ],
      "description": "Unquote file or member names",
      "isPersistent": true,
      "exclusiveOn": [
        "--no-unquote"
      ]
    },
    {
      "names": [
        "--verbatim-files-from"
      ],
      "description": "Treat each line obtained from a file list as a file name, even if it starts with a dash",
      "isPersistent": true,
      "isRepeatable": -1,
      "dependsOn": [
        "T",
        "-T",
        "--files-from"
      ]
    },
    {
      "names": [
        "X",
        "-X",
        "--exclude-from"
      ],
      "description": "Exclude files matching patterns listed in FILE",
      "isPersistent": true,
      "isRepeatable": -1,
      "args": [
        {
          "name": "FILE",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--index-file"
      ],
      "description": "Send verbose output to FILE",
      "isPersistent": true,
      "args": [
        {
          "name": "FILE"
        }
      ]
    },
    {
      "names": [
        "--no-quote-chars"
      ],
      "description": "Disable quoting for characters from STRING",
      "isPersistent": true,
      "args": [
        {
          "name": "STRING"
        }
      ]
    },
    {
      "names": [
        "--quote-chars"
      ],
      "description": "Additionally quote characters from STRING",
      "isPersistent": true,
      "args": [
        {
          "name": "STRING"
        }
      ]
    },
    {
      "names": [
        "--quoting-style"
      ],
      "description": "Set quoting style for file and member names",
      "isPersistent": true,
      "args": [
        {
          "name": "STYLE",
          "suggestions": [
            "literal",
            "shell",
            "shell-always",
            "c",
            "c-maybe",
            "escape",
            "locale",
            "clocale"
          ]
        }
      ]
    },
    {
      "names": [
        "R",
        "-R",
        "--block-number"
      ],
      "description": "Show block number within archive with each message",
      "isPersistent": true
    },
    {
      "names": [
        "--show-transformed-names",
        "--show-stored-names"
      ],
      "description": "Show file or archive names after transformation by --strip and --transform options",
      "isPersistent": true
    },
    {
      "names": [
        "--totals"
      ],
      "description": "Print total bytes after processing the archive",
      "isPersistent": true,
      "args": [
        {
          "name": "SIGNAL",
          "description": "Print total bytes when this signal is delivered",
          "isOptional": true,
          "suggestions": [
            "SIGHUP",
            "SIGQUIT",
            "SIGINT",
            "SIGUSR1",
            "SIGUSR2"
          ]
        }
      ]
    },
    {
      "names": [
        "v",
        "-v",
        "--verbose"
      ],
      "description": "Verbosely list files processed",
      "isPersistent": true,
      "isRepeatable": -1
    },
    {
      "names": [
        "w",
        "-w",
        "--interactive",
        "--confirmation"
      ],
      "description": "Ask for confirmation for every action"
    }
  ],
  "subcommands": [
    {
      "name": "A",
      "aliases": [
        "-A",
        "--catenate",
        "--concatenate"
      ],
      "description": "Append archive to the end of another archive",
      "args": [
        {
          "name": "ARCHIVE",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "c",
      "aliases": [
        "-c",
        "--create"
      ],
      "description": "Create a new archive",
      "options": [
        {
          "names": [
            "--check-device"
          ],
          "description": "Check device numbers when creating incremental archives",
          "exclusiveOn": [
            "--no-check-device"
          ],
          "dependsOn": [
            "g",
            "-g",
            "--listed-incremental"
          ]
        },
        {
          "names": [
            "--level"
          ],
          "description": "Set dump level for created listed-incremental archive",
          "separator": "=",
          "dependsOn": [
            "g",
            "-g",
            "--listed-incremental"
          ],
          "args": [
            {
              "name": "NUMBER"
            }
          ]
        },
        {
          "names": [
            "--no-check-device"
          ],
          "description": "Do not check device numbers when creating incremental archives",
          "exclusiveOn": [
            "--check-device"
          ],
          "dependsOn": [
            "g",
            "-g",
            "--listed-incremental"
          ]
        },
        {
          "names": [
            "--ignore-failed-read"
          ],
          "description": "Do not exit with nonzero on unreadable files"
        },
        {
          "names": [
            "--restrict"
          ],
          "description": "Disable the use of some potentially harmful options",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ]
        },
        {
          "names": [
            "--remove-files"
          ],
          "description": "Remove files from disk after adding them to the archive"
        },
        {
          "names": [
            "W",
            "-W",
            "--verify"
          ],
          "description": "Verify the archive after writing it"
        },
        {
          "names": [
            "--atime-preserve"
          ],
          "description": "Preserve access times on dumped files",
          "args": [
            {
              "name": "METHOD",
              "isOptional": true,
              "suggestions": [
                "replace",
                "system"
              ]
            }
          ]
        },
        {
          "names": [
            "--group"
          ],
          "description": "Force NAME as group for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If GID is not supplied, NAME can be either a user name or numeric GID"
            }
          ]
        },
        {
          "names": [
            "--group-map"
          ],
          "description": "Read group translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single group",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--mode"
          ],
          "description": "Force symbolic mode CHANGES for added files",
          "args": [
            {
              "name": "CHANGES"
            }
          ]
        },
        {
          "names": [
            "--mtime"
          ],
          "description": "Set mtime for added files",
          "args": [
            {
              "name": "DATE-OR-FILE",
              "description": "Either a date/time in almost arbitrary format, or the name of an existing file",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--owner"
          ],
          "description": "Force NAME as owner for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If UID is not supplied, NAME can be either a user name or numeric UID"
            }
          ]
        },
        {
          "names": [
            "--owner-map"
          ],
          "description": "Read owner translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single UID",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sort"
          ],
          "description": "When creating an archive, sort directory entries according to ORDER",
          "args": [
            {
              "name": "ORDER",
              "suggestions": [
                "none",
                "name",
                "inode"
              ]
            }
          ]
        },
        {
          "names": [
            "--add-file"
          ],
          "description": "Add FILE to the archive",
          "args": [
            {
              "name": "FILE",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude files matching PATTERN",
          "args": [
            {
              "name": "PATTERN",
              "description": "A glob-style wildcard pattern"
            }
          ]
        },
        {
          "names": [
            "--exclude-backups"
          ],
          "description": "Exclude backup and lock files"
        },
        {
          "names": [
            "--exclude-caches"
          ],
          "description": "Exclude contents of directories containing file CACHEDIR.TAG, except for the tag file itself",
          "exclusiveOn": [
            "--exclude-caches-all",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-all"
          ],
          "description": "Exclude directories containing file CACHEDIR.TAG and the file itself",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-under"
          ],
          "description": "Exclude everything under directories containing CACHEDIR.TAG",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-all"
          ]
        },
        {
          "names": [
            "--exclude-ignore"
          ],
          "description": "Read exclusion patterns from FILE in directory before dumping",
          "exclusiveOn": [
            "--exclude-ignore-recursive"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-ignore-recursive"
          ],
          "description": "Same  as --exclude-ignore, except that patterns from FILE affect both the directory and all its subdirectories",
          "exclusiveOn": [
            "--exclude-ignore"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag"
          ],
          "description": "Exclude contents of directories containing FILE, except for FILE itself",
          "exclusiveOn": [
            "--exclude-tag-all",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-all"
          ],
          "description": "Exclude directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-under"
          ],
          "description": "Exclude everything under directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-all"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-vcs"
          ],
          "description": "Exclude version control system directories",
          "exclusiveOn": [
            "--exclude-vcs-ignores"
          ]
        },
        {
          "names": [
            "--exclude-vcs-ignores"
          ],
          "description": "Exclude files that match patterns read from VCS-specific ignore files",
          "exclusiveOn": [
            "--exclude-vcs"
          ]
        },
        {
          "names": [
            "h",
            "-h",
            "--dereference"
          ],
          "description": "Follow symlinks; archive and dump the files they point to"
        },
        {
          "names": [
            "--hard-dereference"
          ],
          "description": "Follow hard links; archive and dump the files they refer to"
        },
        {
          "names": [
            "N",
            "-N",
            "--newer",
            "--after-date"
          ],
          "description": "Only store files newer than DATE",
          "args": [
            {
              "name": "DATE",
              "description": "If DATE starts with / or . it is taken to be a file name",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--one-file-system"
          ],
          "description": "Stay in local file system when creating archive"
        },
        {
          "names": [
            "P",
            "-P",
            "--absolute-names"
          ],
          "description": "Don't strip leading slashes from file names"
        },
        {
          "names": [
            "--anchored"
          ],
          "description": "Patterns match file name start",
          "exclusiveOn": [
            "--no-anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--ignore-case"
          ],
          "description": "Ignore case",
          "exclusiveOn": [
            "--no-ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-anchored"
          ],
          "description": "Patterns match after any /",
          "exclusiveOn": [
            "--anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-ignore-case"
          ],
          "description": "Case sensitive matching",
          "exclusiveOn": [
            "--ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards"
          ],
          "description": "Verbatim string matching",
          "exclusiveOn": [
            "--wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards-match-slash"
          ],
          "description": "Wildcards do not match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--wildcards"
          ],
          "description": "Use wildcards",
          "exclusiveOn": [
            "--no-wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--wildcards-match-slash"
          ],
          "description": "Wildcards match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--no-wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--clamp-mtime"
          ],
          "description": "Only set time when the file is more recent than what was given with --mtime",
          "dependsOn": [
            "--mtime"
          ]
        },
        {
          "names": [
            "l",
            "-l",
            "--check-links"
          ],
          "description": "Print a message if not all links are dumped"
        },
        {
          "names": [
            "a",
            "-a",
            "--auto-compress"
          ],
          "description": "Use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "I",
            "-I",
            "--use-compress-program"
          ],
          "description": "Filter data through COMMAND",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ],
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "j",
            "-j",
            "--bzip2"
          ],
          "description": "Filter the archive through bzip2",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "J",
            "-J",
            "--xz"
          ],
          "description": "Filter the archive through xz",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzip"
          ],
          "description": "Filter the archive through lzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzma"
          ],
          "description": "Filter the archive through lzma",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzop"
          ],
          "description": "Filter the archive through lzop",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--no-auto-compress"
          ],
          "description": "Do not use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip"
          ],
          "description": "Filter the archive through gzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "Z",
            "-Z",
            "--compress",
            "--uncompress"
          ],
          "description": "Filter the archive through compress",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--zstd"
          ],
          "description": "Filter the archive through zstd",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--transform",
            "--xform"
          ],
          "description": "Use sed replace EXPRESSION to transform file names",
          "args": [
            {
              "name": "EXPRESSION"
            }
          ]
        },
        {
          "names": [
            "--checkpoint"
          ],
          "description": "Display progress messages every Nth record",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--checkpoint-action"
          ],
          "description": "Run ACTION on each checkpoint",
          "args": [
            {
              "name": "ACTION"
            }
          ]
        },
        {
          "names": [
            "--full-time"
          ],
          "description": "Print file time to its full resolution",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "--utc"
          ],
          "description": "Print file modification times in UTC",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "b",
            "-b",
            "--blocking-factor"
          ],
          "description": "Set record size to BLOCKSx512 bytes",
          "args": [
            {
              "name": "BLOCKS"
            }
          ]
        },
        {
          "names": [
            "--record-size"
          ],
          "description": "Set record size",
          "args": [
            {
              "name": "NUMBER",
              "description": "The number of bytes per record",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "H",
            "-H",
            "--format"
          ],
          "description": "Create archive of the given format",
          "exclusiveOn": [
            "--old-archive",
            "--portability",
            "--posix",
            "o",
            "-o"
          ],
          "args": [
            {
              "name": "FORMAT",
              "suggestions": [
                "gnu",
                "oldgnu",
                "pax",
                "ustar",
                "v7"
              ]
            }
          ]
        },
        {
          "names": [
            "--old-archive",
            "--portability"
          ],
          "description": "Same as --format=v7",
          "exclusiveOn": [
            "H",
            "-H",
            "--format",
            "--pax-option",
            "--posix",
            "o",
            "-o"
          ]
        },
        {
          "names": [
            "--pax-option"
          ],
          "description": "Control pax keywords when creating PAX archives",
          "exclusiveOn": [
            "--old-archive",
            "--portability",
            "--old-archive",
            "--portability",
            "--posix",
            "o",
            "-o"
          ],
          "dependsOn": [
            "H",
            "-H",
            "--format"
          ],
          "args": [
            {
              "name": "keyword[[:]=value][,keyword[[:]=value]]..."
            }
          ]
        },
        {
          "names": [
            "--posix"
          ],
          "description": "Same as --format=posix",
          "exclusiveOn": [
            "H",
            "-H",
            "--format",
            "--old-archive",
            "--portability",
            "--pax-option"
          ]
        },
        {
          "names": [
            "V",
            "-V",
            "--label"
          ],
          "description": "Create archive with volume name TEXT",
          "args": [
            {
              "name": "TEXT"
            }
          ]
        },
        {
          "names": [
            "--warning"
          ],
          "description": "Enable or disable warning messages identified by KEYWORD",
          "isPersistent": true,
          "isRepeatable": -1,
          "args": [
            {
              "name": "KEYWORD",
              "suggestions": [
                "all",
                "none",
                "filename-with-nuls",
                "no-filename-with-nuls",
                "alone-zero-block",
                "no-alone-zero-block",
                "cachedir",
                "no-cachedir",
                "file-shrank",
                "no-file-shrank",
                "xdev",
                "no-xdev",
                "file-ignored",
                "no-file-ignored",
                "file-unchanged",
                "no-file-unchanged",
                "ignore-archive",
                "no-ignore-archive",
                "file-removed",
                "no-file-removed",
                "file-changed",
                "no-file-changed",
                "failed-read",
                "no-failed-read"
              ]
            }
          ]
        },
        {
          "names": [
            "o",
            "-o"
          ],
          "description": "Same as --old-archive",
          "exclusiveOn": [
            "H",
            "-H",
            "--format",
            "--old-archive",
            "--portability",
            "--posix",
            "o",
            "-o"
          ]
        },
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Verbose"
        }
      ],
      "args": [
        {
          "name": "FILE",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "d",
      "aliases": [
        "-d",
        "--diff",
        "--compare"
      ],
      "description": "Find differences between archive and file system",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--occurrence"
          ],
          "description": "Process only the Nth occurrence of each file in the archive",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        }
      ],
      "args": [
        {
          "name": "FILE",
          "isOptional": true,
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "t",
      "aliases": [
        "-t",
        "--list"
      ],
      "description": "List the contents of an archive",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "n",
            "-n",
            "--seek"
          ],
          "description": "Assume the archive is seekable",
          "exclusiveOn": [
            "--no-seek"
          ]
        },
        {
          "names": [
            "--no-seek"
          ],
          "description": "Assume the archive is not seekable",
          "exclusiveOn": [
            "n",
            "-n",
            "--seek"
          ]
        },
        {
          "names": [
            "--occurrence"
          ],
          "description": "Process only the Nth occurrence of each file in the archive",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "B",
            "-B",
            "--read-full-records"
          ],
          "description": "When listing or extracting, accept incomplete input records after end-of-file marker"
        },
        {
          "names": [
            "i",
            "-i",
            "--ignore-zeros"
          ],
          "description": "Ignore zeroed blocks in archive"
        },
        {
          "names": [
            "V",
            "-V",
            "--label"
          ],
          "description": "Use TEXT as a globbing pattern for volume name",
          "args": [
            {
              "name": "TEXT"
            }
          ]
        },
        {
          "names": [
            "a",
            "-a",
            "--auto-compress"
          ],
          "description": "Use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "I",
            "-I",
            "--use-compress-program"
          ],
          "description": "Filter data through COMMAND",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ],
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "j",
            "-j",
            "--bzip2"
          ],
          "description": "Filter the archive through bzip2",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "J",
            "-J",
            "--xz"
          ],
          "description": "Filter the archive through xz",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzip"
          ],
          "description": "Filter the archive through lzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzma"
          ],
          "description": "Filter the archive through lzma",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzop"
          ],
          "description": "Filter the archive through lzop",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--no-auto-compress"
          ],
          "description": "Do not use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip"
          ],
          "description": "Filter the archive through gzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "Z",
            "-Z",
            "--compress",
            "--uncompress"
          ],
          "description": "Filter the archive through compress",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--zstd"
          ],
          "description": "Filter the archive through zstd",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--transform",
            "--xform"
          ],
          "description": "Use sed replace EXPRESSION to transform file names",
          "args": [
            {
              "name": "EXPRESSION"
            }
          ]
        },
        {
          "names": [
            "--checkpoint"
          ],
          "description": "Display progress messages every Nth record",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--checkpoint-action"
          ],
          "description": "Run ACTION on each checkpoint",
          "args": [
            {
              "name": "ACTION"
            }
          ]
        },
        {
          "names": [
            "--full-time"
          ],
          "description": "Print file time to its full resolution",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "--utc"
          ],
          "description": "Print file modification times in UTC",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "K",
            "-K",
            "--starting-file"
          ],
          "description": "Begin at the given member in the archive",
          "args": [
            {
              "name": "MEMBER"
            }
          ]
        },
        {
          "names": [
            "--show-omitted-dirs"
          ],
          "description": "List each directory that does not match search criteria"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Verbose (long listing)"
        }
      ],
      "args": [
        {
          "name": "MEMBER",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "r",
      "aliases": [
        "-r",
        "--append"
      ],
      "description": "Append files to the end of an archive",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--ignore-failed-read"
          ],
          "description": "Do not exit with nonzero on unreadable files"
        },
        {
          "names": [
            "--restrict"
          ],
          "description": "Disable the use of some potentially harmful options",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ]
        },
        {
          "names": [
            "--remove-files"
          ],
          "description": "Remove files from disk after adding them to the archive"
        },
        {
          "names": [
            "W",
            "-W",
            "--verify"
          ],
          "description": "Verify the archive after writing it"
        },
        {
          "names": [
            "--atime-preserve"
          ],
          "description": "Preserve access times on dumped files",
          "args": [
            {
              "name": "METHOD",
              "isOptional": true,
              "suggestions": [
                "replace",
                "system"
              ]
            }
          ]
        },
        {
          "names": [
            "--group"
          ],
          "description": "Force NAME as group for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If GID is not supplied, NAME can be either a user name or numeric GID"
            }
          ]
        },
        {
          "names": [
            "--group-map"
          ],
          "description": "Read group translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single group",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--mode"
          ],
          "description": "Force symbolic mode CHANGES for added files",
          "args": [
            {
              "name": "CHANGES"
            }
          ]
        },
        {
          "names": [
            "--mtime"
          ],
          "description": "Set mtime for added files",
          "args": [
            {
              "name": "DATE-OR-FILE",
              "description": "Either a date/time in almost arbitrary format, or the name of an existing file",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--owner"
          ],
          "description": "Force NAME as owner for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If UID is not supplied, NAME can be either a user name or numeric UID"
            }
          ]
        },
        {
          "names": [
            "--owner-map"
          ],
          "description": "Read owner translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single UID",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sort"
          ],
          "description": "When creating an archive, sort directory entries according to ORDER",
          "args": [
            {
              "name": "ORDER",
              "suggestions": [
                "none",
                "name",
                "inode"
              ]
            }
          ]
        },
        {
          "names": [
            "--add-file"
          ],
          "description": "Add FILE to the archive",
          "args": [
            {
              "name": "FILE",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude files matching PATTERN",
          "args": [
            {
              "name": "PATTERN",
              "description": "A glob-style wildcard pattern"
            }
          ]
        },
        {
          "names": [
            "--exclude-backups"
          ],
          "description": "Exclude backup and lock files"
        },
        {
          "names": [
            "--exclude-caches"
          ],
          "description": "Exclude contents of directories containing file CACHEDIR.TAG, except for the tag file itself",
          "exclusiveOn": [
            "--exclude-caches-all",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-all"
          ],
          "description": "Exclude directories containing file CACHEDIR.TAG and the file itself",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-under"
          ],
          "description": "Exclude everything under directories containing CACHEDIR.TAG",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-all"
          ]
        },
        {
          "names": [
            "--exclude-ignore"
          ],
          "description": "Read exclusion patterns from FILE in directory before dumping",
          "exclusiveOn": [
            "--exclude-ignore-recursive"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-ignore-recursive"
          ],
          "description": "Same  as --exclude-ignore, except that patterns from FILE affect both the directory and all its subdirectories",
          "exclusiveOn": [
            "--exclude-ignore"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag"
          ],
          "description": "Exclude contents of directories containing FILE, except for FILE itself",
          "exclusiveOn": [
            "--exclude-tag-all",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-all"
          ],
          "description": "Exclude directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-under"
          ],
          "description": "Exclude everything under directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-all"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-vcs"
          ],
          "description": "Exclude version control system directories",
          "exclusiveOn": [
            "--exclude-vcs-ignores"
          ]
        },
        {
          "names": [
            "--exclude-vcs-ignores"
          ],
          "description": "Exclude files that match patterns read from VCS-specific ignore files",
          "exclusiveOn": [
            "--exclude-vcs"
          ]
        },
        {
          "names": [
            "h",
            "-h",
            "--dereference"
          ],
          "description": "Follow symlinks; archive and dump the files they point to"
        },
        {
          "names": [
            "--hard-dereference"
          ],
          "description": "Follow hard links; archive and dump the files they refer to"
        },
        {
          "names": [
            "N",
            "-N",
            "--newer",
            "--after-date"
          ],
          "description": "Only store files newer than DATE",
          "args": [
            {
              "name": "DATE",
              "description": "If DATE starts with / or . it is taken to be a file name",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--one-file-system"
          ],
          "description": "Stay in local file system when creating archive"
        },
        {
          "names": [
            "P",
            "-P",
            "--absolute-names"
          ],
          "description": "Don't strip leading slashes from file names"
        },
        {
          "names": [
            "--anchored"
          ],
          "description": "Patterns match file name start",
          "exclusiveOn": [
            "--no-anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--ignore-case"
          ],
          "description": "Ignore case",
          "exclusiveOn": [
            "--no-ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-anchored"
          ],
          "description": "Patterns match after any /",
          "exclusiveOn": [
            "--anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-ignore-case"
          ],
          "description": "Case sensitive matching",
          "exclusiveOn": [
            "--ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards"
          ],
          "description": "Verbatim string matching",
          "exclusiveOn": [
            "--wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards-match-slash"
          ],
          "description": "Wildcards do not match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--wildcards"
          ],
          "description": "Use wildcards",
          "exclusiveOn": [
            "--no-wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--wildcards-match-slash"
          ],
          "description": "Wildcards match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--no-wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--clamp-mtime"
          ],
          "description": "Only set time when the file is more recent than what was given with --mtime",
          "dependsOn": [
            "--mtime"
          ]
        },
        {
          "names": [
            "l",
            "-l",
            "--check-links"
          ],
          "description": "Print a message if not all links are dumped"
        },
        {
          "names": [
            "a",
            "-a",
            "--auto-compress"
          ],
          "description": "Use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "I",
            "-I",
            "--use-compress-program"
          ],
          "description": "Filter data through COMMAND",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ],
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "j",
            "-j",
            "--bzip2"
          ],
          "description": "Filter the archive through bzip2",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "J",
            "-J",
            "--xz"
          ],
          "description": "Filter the archive through xz",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzip"
          ],
          "description": "Filter the archive through lzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzma"
          ],
          "description": "Filter the archive through lzma",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzop"
          ],
          "description": "Filter the archive through lzop",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--no-auto-compress"
          ],
          "description": "Do not use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip"
          ],
          "description": "Filter the archive through gzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "Z",
            "-Z",
            "--compress",
            "--uncompress"
          ],
          "description": "Filter the archive through compress",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--zstd"
          ],
          "description": "Filter the archive through zstd",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--transform",
            "--xform"
          ],
          "description": "Use sed replace EXPRESSION to transform file names",
          "args": [
            {
              "name": "EXPRESSION"
            }
          ]
        },
        {
          "names": [
            "--checkpoint"
          ],
          "description": "Display progress messages every Nth record",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--checkpoint-action"
          ],
          "description": "Run ACTION on each checkpoint",
          "args": [
            {
              "name": "ACTION"
            }
          ]
        },
        {
          "names": [
            "--full-time"
          ],
          "description": "Print file time to its full resolution",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "--utc"
          ],
          "description": "Print file modification times in UTC",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        }
      ],
      "args": [
        {
          "name": "FILE",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "u",
      "aliases": [
        "-u",
        "--update"
      ],
      "description": "Append files which are newer than the corresponding copy in  the archive",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--ignore-failed-read"
          ],
          "description": "Do not exit with nonzero on unreadable files"
        },
        {
          "names": [
            "--restrict"
          ],
          "description": "Disable the use of some potentially harmful options",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ]
        },
        {
          "names": [
            "--remove-files"
          ],
          "description": "Remove files from disk after adding them to the archive"
        },
        {
          "names": [
            "W",
            "-W",
            "--verify"
          ],
          "description": "Verify the archive after writing it"
        },
        {
          "names": [
            "--atime-preserve"
          ],
          "description": "Preserve access times on dumped files",
          "args": [
            {
              "name": "METHOD",
              "isOptional": true,
              "suggestions": [
                "replace",
                "system"
              ]
            }
          ]
        },
        {
          "names": [
            "--group"
          ],
          "description": "Force NAME as group for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If GID is not supplied, NAME can be either a user name or numeric GID"
            }
          ]
        },
        {
          "names": [
            "--group-map"
          ],
          "description": "Read group translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single group",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--mode"
          ],
          "description": "Force symbolic mode CHANGES for added files",
          "args": [
            {
              "name": "CHANGES"
            }
          ]
        },
        {
          "names": [
            "--mtime"
          ],
          "description": "Set mtime for added files",
          "args": [
            {
              "name": "DATE-OR-FILE",
              "description": "Either a date/time in almost arbitrary format, or the name of an existing file",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--owner"
          ],
          "description": "Force NAME as owner for added files",
          "args": [
            {
              "name": "NAME[:GID]",
              "description": "If UID is not supplied, NAME can be either a user name or numeric UID"
            }
          ]
        },
        {
          "names": [
            "--owner-map"
          ],
          "description": "Read owner translation map from FILE",
          "args": [
            {
              "name": "FILE",
              "description": "Each non-empty line in FILE defines translation for a single UID",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sort"
          ],
          "description": "When creating an archive, sort directory entries according to ORDER",
          "args": [
            {
              "name": "ORDER",
              "suggestions": [
                "none",
                "name",
                "inode"
              ]
            }
          ]
        },
        {
          "names": [
            "--add-file"
          ],
          "description": "Add FILE to the archive",
          "args": [
            {
              "name": "FILE",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude files matching PATTERN",
          "args": [
            {
              "name": "PATTERN",
              "description": "A glob-style wildcard pattern"
            }
          ]
        },
        {
          "names": [
            "--exclude-backups"
          ],
          "description": "Exclude backup and lock files"
        },
        {
          "names": [
            "--exclude-caches"
          ],
          "description": "Exclude contents of directories containing file CACHEDIR.TAG, except for the tag file itself",
          "exclusiveOn": [
            "--exclude-caches-all",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-all"
          ],
          "description": "Exclude directories containing file CACHEDIR.TAG and the file itself",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-under"
          ]
        },
        {
          "names": [
            "--exclude-caches-under"
          ],
          "description": "Exclude everything under directories containing CACHEDIR.TAG",
          "exclusiveOn": [
            "--exclude-caches",
            "--exclude-caches-all"
          ]
        },
        {
          "names": [
            "--exclude-ignore"
          ],
          "description": "Read exclusion patterns from FILE in directory before dumping",
          "exclusiveOn": [
            "--exclude-ignore-recursive"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-ignore-recursive"
          ],
          "description": "Same  as --exclude-ignore, except that patterns from FILE affect both the directory and all its subdirectories",
          "exclusiveOn": [
            "--exclude-ignore"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag"
          ],
          "description": "Exclude contents of directories containing FILE, except for FILE itself",
          "exclusiveOn": [
            "--exclude-tag-all",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-all"
          ],
          "description": "Exclude directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-under"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-tag-under"
          ],
          "description": "Exclude everything under directories containing FILE",
          "exclusiveOn": [
            "--exclude-tag",
            "--exclude-tag-all"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--exclude-vcs"
          ],
          "description": "Exclude version control system directories",
          "exclusiveOn": [
            "--exclude-vcs-ignores"
          ]
        },
        {
          "names": [
            "--exclude-vcs-ignores"
          ],
          "description": "Exclude files that match patterns read from VCS-specific ignore files",
          "exclusiveOn": [
            "--exclude-vcs"
          ]
        },
        {
          "names": [
            "h",
            "-h",
            "--dereference"
          ],
          "description": "Follow symlinks; archive and dump the files they point to"
        },
        {
          "names": [
            "--hard-dereference"
          ],
          "description": "Follow hard links; archive and dump the files they refer to"
        },
        {
          "names": [
            "N",
            "-N",
            "--newer",
            "--after-date"
          ],
          "description": "Only store files newer than DATE",
          "args": [
            {
              "name": "DATE",
              "description": "If DATE starts with / or . it is taken to be a file name",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--one-file-system"
          ],
          "description": "Stay in local file system when creating archive"
        },
        {
          "names": [
            "P",
            "-P",
            "--absolute-names"
          ],
          "description": "Don't strip leading slashes from file names"
        },
        {
          "names": [
            "--anchored"
          ],
          "description": "Patterns match file name start",
          "exclusiveOn": [
            "--no-anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--ignore-case"
          ],
          "description": "Ignore case",
          "exclusiveOn": [
            "--no-ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-anchored"
          ],
          "description": "Patterns match after any /",
          "exclusiveOn": [
            "--anchored"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-ignore-case"
          ],
          "description": "Case sensitive matching",
          "exclusiveOn": [
            "--ignore-case"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards"
          ],
          "description": "Verbatim string matching",
          "exclusiveOn": [
            "--wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--no-wildcards-match-slash"
          ],
          "description": "Wildcards do not match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--wildcards"
          ],
          "description": "Use wildcards",
          "exclusiveOn": [
            "--no-wildcards"
          ],
          "dependsOn": [
            "--exclude"
          ]
        },
        {
          "names": [
            "--wildcards-match-slash"
          ],
          "description": "Wildcards match /",
          "exclusiveOn": [
            "--no-wildcards",
            "--no-wildcards-match-slash"
          ],
          "dependsOn": [
            "--exclude",
            "--wildcards"
          ]
        },
        {
          "names": [
            "--clamp-mtime"
          ],
          "description": "Only set time when the file is more recent than what was given with --mtime",
          "dependsOn": [
            "--mtime"
          ]
        },
        {
          "names": [
            "l",
            "-l",
            "--check-links"
          ],
          "description": "Print a message if not all links are dumped"
        },
        {
          "names": [
            "a",
            "-a",
            "--auto-compress"
          ],
          "description": "Use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "I",
            "-I",
            "--use-compress-program"
          ],
          "description": "Filter data through COMMAND",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ],
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "j",
            "-j",
            "--bzip2"
          ],
          "description": "Filter the archive through bzip2",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "J",
            "-J",
            "--xz"
          ],
          "description": "Filter the archive through xz",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzip"
          ],
          "description": "Filter the archive through lzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzma"
          ],
          "description": "Filter the archive through lzma",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzop"
          ],
          "description": "Filter the archive through lzop",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--no-auto-compress"
          ],
          "description": "Do not use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip"
          ],
          "description": "Filter the archive through gzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "Z",
            "-Z",
            "--compress",
            "--uncompress"
          ],
          "description": "Filter the archive through compress",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--zstd"
          ],
          "description": "Filter the archive through zstd",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--transform",
            "--xform"
          ],
          "description": "Use sed replace EXPRESSION to transform file names",
          "args": [
            {
              "name": "EXPRESSION"
            }
          ]
        },
        {
          "names": [
            "--checkpoint"
          ],
          "description": "Display progress messages every Nth record",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--checkpoint-action"
          ],
          "description": "Run ACTION on each checkpoint",
          "args": [
            {
              "name": "ACTION"
            }
          ]
        },
        {
          "names": [
            "--full-time"
          ],
          "description": "Print file time to its full resolution",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "--utc"
          ],
          "description": "Print file modification times in UTC",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        }
      ],
      "args": [
        {
          "name": "FILE",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "x",
      "aliases": [
        "-x",
        "--extract",
        "--get"
      ],
      "description": "Extract files from an archive",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "n",
            "-n",
            "--seek"
          ],
          "description": "Assume the archive is seekable",
          "exclusiveOn": [
            "--no-seek"
          ]
        },
        {
          "names": [
            "--no-seek"
          ],
          "description": "Assume the archive is not seekable",
          "exclusiveOn": [
            "n",
            "-n",
            "--seek"
          ]
        },
        {
          "names": [
            "--occurrence"
          ],
          "description": "Process only the Nth occurrence of each file in the archive",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "B",
            "-B",
            "--read-full-records"
          ],
          "description": "When listing or extracting, accept incomplete input records after end-of-file marker"
        },
        {
          "names": [
            "i",
            "-i",
            "--ignore-zeros"
          ],
          "description": "Ignore zeroed blocks in archive"
        },
        {
          "names": [
            "V",
            "-V",
            "--label"
          ],
          "description": "Use TEXT as a globbing pattern for volume name",
          "args": [
            {
              "name": "TEXT"
            }
          ]
        },
        {
          "names": [
            "a",
            "-a",
            "--auto-compress"
          ],
          "description": "Use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "I",
            "-I",
            "--use-compress-program"
          ],
          "description": "Filter data through COMMAND",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ],
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "j",
            "-j",
            "--bzip2"
          ],
          "description": "Filter the archive through bzip2",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "J",
            "-J",
            "--xz"
          ],
          "description": "Filter the archive through xz",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzip"
          ],
          "description": "Filter the archive through lzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzma"
          ],
          "description": "Filter the archive through lzma",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--lzop"
          ],
          "description": "Filter the archive through lzop",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--no-auto-compress"
          ],
          "description": "Do not use archive suffix to determine the compression program",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip"
          ],
          "description": "Filter the archive through gzip",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "Z",
            "-Z",
            "--compress",
            "--uncompress"
          ],
          "description": "Filter the archive through compress",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--zstd"
          ],
          "description": "Filter the archive through zstd",
          "exclusiveOn": [
            "a",
            "-a",
            "--auto-compress",
            "I",
            "-I",
            "--use-compress-program",
            "j",
            "-j",
            "--bzip2",
            "J",
            "-J",
            "--xz",
            "--lzip",
            "--lzma",
            "--lzop",
            "--no-auto-compress",
            "z",
            "-z",
            "--gzip",
            "--gunzip",
            "--ungzip",
            "Z",
            "-Z",
            "--compress",
            "--uncompress",
            "--zstd"
          ]
        },
        {
          "names": [
            "--transform",
            "--xform"
          ],
          "description": "Use sed replace EXPRESSION to transform file names",
          "args": [
            {
              "name": "EXPRESSION"
            }
          ]
        },
        {
          "names": [
            "--checkpoint"
          ],
          "description": "Display progress messages every Nth record",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--checkpoint-action"
          ],
          "description": "Run ACTION on each checkpoint",
          "args": [
            {
              "name": "ACTION"
            }
          ]
        },
        {
          "names": [
            "--full-time"
          ],
          "description": "Print file time to its full resolution",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "--utc"
          ],
          "description": "Print file modification times in UTC",
          "dependsOn": [
            "v",
            "-v",
            "--verbose"
          ]
        },
        {
          "names": [
            "K",
            "-K",
            "--starting-file"
          ],
          "description": "Begin at the given member in the archive",
          "args": [
            {
              "name": "MEMBER"
            }
          ]
        },
        {
          "names": [
            "--show-omitted-dirs"
          ],
          "description": "List each directory that does not match search criteria"
        },
        {
          "names": [
            "k",
            "-k",
            "--keep-old-files"
          ],
          "description": "Don't replace existing files when extracting",
          "exclusiveOn": [
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--keep-newer-files"
          ],
          "description": "Don't replace existing files that are newer than their archive copies",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--keep-directory-symlink"
          ],
          "description": "Don't replace existing symlinks to directories when extracting",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--no-overwrite-dir"
          ],
          "description": "Preserve metadata of existing directories",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--one-top-level"
          ],
          "description": "Extract all files into DIR",
          "args": [
            {
              "name": "DIR"
            }
          ]
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "Overwrite existing files when extracting",
          "exclusiveOn": [
            "--overwrite-dir",
            "--recursive-unlink",
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--overwrite-dir"
          ],
          "description": "Overwrite metadata of existing directories when extracting",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--recursive-unlink"
          ],
          "description": "Recursively remove all files in the directory prior to extracting it",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--skip-old-files"
          ],
          "description": "Don't replace existing files when extracting, silently skip over them",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout",
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "U",
            "-U",
            "--unlink-first"
          ],
          "description": "Remove each file prior to extracting over it",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout",
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "O",
            "-O",
            "--to-stdout"
          ],
          "description": "Extract files to standard output",
          "exclusiveOn": [
            "k",
            "-k",
            "--keep-old-files",
            "--overwrite",
            "--overwrite-dir",
            "--recursive-unlink",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout",
            "k",
            "-k",
            "--keep-old-files",
            "--keep-newer-files",
            "--keep-directory-symlink",
            "--no-overwrite-dir",
            "--overwrite",
            "--skip-old-files",
            "U",
            "-U",
            "--unlink-first",
            "O",
            "-O",
            "--to-stdout"
          ]
        },
        {
          "names": [
            "--to-command"
          ],
          "description": "Pipe extracted files to COMMAND",
          "args": [
            {
              "name": "COMMAND",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--delay-directory-restore"
          ],
          "description": "Delay setting modification times and permissions of extracted directories until the end of extraction",
          "exclusiveOn": [
            "--no-delay-directory-restore"
          ]
        },
        {
          "names": [
            "m",
            "-m",
            "--touch"
          ],
          "description": "Don't extract file modified time"
        },
        {
          "names": [
            "--no-delay-directory-restore"
          ],
          "description": "Cancel the effect of the prior --delay-directory-restore option",
          "exclusiveOn": [
            "--delay-directory-restore"
          ]
        },
        {
          "names": [
            "--no-same-owner"
          ],
          "description": "Extract files as yourself",
          "exclusiveOn": [
            "--same-owner"
          ]
        },
        {
          "names": [
            "--no-same-permissions"
          ],
          "description": "Apply the user's umask when extracting permissions from the archive",
          "exclusiveOn": [
            "p",
            "-p",
            "--preserve-permissions",
            "--same-permissions"
          ]
        },
        {
          "names": [
            "p",
            "-p",
            "--preserve-permissions",
            "--same-permissions"
          ],
          "description": "Extract information about file permissions",
          "exclusiveOn": [
            "--no-same-permissions"
          ]
        },
        {
          "names": [
            "--preserve"
          ],
          "description": "Same as both -p and -s"
        },
        {
          "names": [
            "--same-owner"
          ],
          "description": "Try extracting files with the same ownership as exists in the archive",
          "exclusiveOn": [
            "--no-same-owner"
          ]
        },
        {
          "names": [
            "s",
            "-s",
            "--preserve-order",
            "--same-order"
          ],
          "description": "Sort names to extract to match archive"
        },
        {
          "names": [
            "--strip-components"
          ],
          "description": "Strip NUMBER leading components from file names on extraction",
          "args": [
            {
              "name": "NUMBER"
            }
          ]
        },
        {
          "names": [
            "--warning"
          ],
          "description": "Enable or disable warning messages identified by KEYWORD",
          "isPersistent": true,
          "isRepeatable": -1,
          "args": [
            {
              "name": "KEYWORD",
              "suggestions": [
                "all",
                "none",
                "filename-with-nuls",
                "no-filename-with-nuls",
                "alone-zero-block",
                "no-alone-zero-block",
                "existing-file",
                "no-existing-file",
                "timestamp",
                "no-timestamp",
                "contiguous-cast",
                "no-contiguous-cast",
                "symlink-cast",
                "no-symlink-cast",
                "unknown-cast",
                "no-unknown-cast",
                "ignore-newer",
                "no-ignore-newer",
                "unknown-keyword",
                "no-unknown-keyword",
                "decompress-program",
                "no-decompress-program",
                "record-size",
                "no-record-size",
                "rename-directory",
                "no-rename-directory",
                "new-directory",
                "no-new-directory",
                "xdev",
                "no-xdev",
                "bad-dumpdir"
              ]
            }
          ]
        },
        {
          "names": [
            "o",
            "-o"
          ],
          "description": "Same as --no-same-owner",
          "exclusiveOn": [
            "--no-same-owner",
            "--same-owner"
          ]
        },
        {
          "names": [
            "-C",
            "--directory"
          ],
          "description": "Extract into directory",
          "args": {
            "name": "directory",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Verbose"
        }
      ],
      "args": [
        {
          "name": "MEMBER",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "--delete",
      "description": "Delete from the archive",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        },
        {
          "names": [
            "--occurrence"
          ],
          "description": "Process only the Nth occurrence of each file in the archive",
          "args": [
            {
              "name": "N",
              "isOptional": true
            }
          ]
        }
      ],
      "args": [
        {
          "name": "MEMBER",
          "isVariadic": true
        }
      ]
    },
    {
      "name": "--test-label",
      "description": "Test the archive volume label and exit",
      "options": [
        {
          "names": [
            "f",
            "-f",
            "--file"
          ],
          "description": "Use archive file or device ARCHIVE",
          "isRequired": true,
          "args": [
            {
              "name": "ARCHIVE"
            }
          ]
        },
        {
          "names": [
            "--force-local"
          ],
          "description": "Archive file is local even if it has a colon",
          "dependsOn": [
            "f",
            "-f",
            "--file"
          ]
        },
        {
          "names": [
            "F",
            "-F",
            "--info-script",
            "--new-volume-script"
          ],
          "description": "Run  COMMAND  at the end of each tape",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "L",
            "-L",
            "--tape-length"
          ],
          "description": "Change tape after writing Nx1024 bytes",
          "args": [
            {
              "name": "N",
              "suggestions": [
                "Blocks",
                "Bytes",
                "Gigabytes",
                "Kilobytes",
                "Megabytes",
                "Petabytes",
                "Terabytes",
                "Words"
              ]
            }
          ]
        },
        {
          "names": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "description": "Create/list/extract multi-volume archive"
        },
        {
          "names": [
            "--rmt-command"
          ],
          "description": "Use  COMMAND instead of rmt when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--rsh-command"
          ],
          "description": "Use  COMMAND instead of rsh when accessing remote archives",
          "args": [
            {
              "name": "COMMAND"
            }
          ]
        },
        {
          "names": [
            "--volno-file"
          ],
          "description": "Tar will keep track of which volume of a multi-volume archive it is working in FILE",
          "dependsOn": [
            "M",
            "-M",
            "--multi-volume"
          ],
          "args": [
            {
              "name": "FILE"
            }
          ]
        }
      ],
      "args": [
        {
          "name": "LABEL",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "--show-defaults",
      "description": "Show built-in defaults for various tar options and exit"
    },
    {
      "name": "?",
      "aliases": [
        "-?",
        "--help"
      ],
      "description": "Display a short option summary and exit"
    },
    {
      "name": "--usage",
      "description": "Display a list of available options and exit"
    },
    {
      "name": "--version",
      "description": "Print program version and copyright information and exit"
    }
  ]
}
