---
name: "git-annex-examinekey"
section: "1"
platform: "linux"
package: "git-annex"
version: "10.20261026-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-annex-examinekey"
---

# git-annex-examinekey(1)

prints information from a key

## NAME

git-annex-examinekey - prints information from a key

## SYNOPSIS

git annex examinekey **\[key ...\]**

## DESCRIPTION

This plumbing-level command is given a key, and prints information that can be determined purely by looking at the key.

## OPTIONS

- **--format=value**

  -

  Use custom output formatting.

-

  The value is a format string, in which '${var}' is expanded to the value of a variable. To right-justify a variable with whitespace, use '${var;width}' ; to left-justify a variable, use '${var;-width}'; to escape unusual characters (including control characters) in a variable, use '${escaped\_var}'

-

  To generate a path from the top of the repository to the git-annex object for a key, use ${objectpath}. To generate the value of a git-annex pointer file for a key, use ${objectpointer}.

-

  These variables are also available for use in formats: ${key}, ${backend}, ${bytesize}, ${humansize}, ${keyname}, ${hashdirlower}, ${hashdirmixed}, ${mtime} (for the mtime field of a WORM key), ${file} (when a filename is provided to examinekey).

-

  Also, '\\n' is a newline, '\\000' is a NULL, etc.

-

  The default output format is the same as **--format='${escapedkey}\\n'** except when outputting to a terminal, control characters will be escaped.

-

  - **--json**

  Enable JSON output. This is intended to be parsed by programs that use git-annex. Each line of output is a JSON object.

-

  - **--json-error-messages**

  Messages that would normally be output to standard error are included in the JSON instead.

-

  - **--migrate-to-backend=backend**

  Attempt to migrate the input key to the new backend specified. If successful, outputs information about the migrated key. Otherwise, outputs information about the input key.

-

  This only does fast migrations; it will not re-hash the content of a key or similar expensive operation.

-

  One way to use it is to add an extension to a key.

-

   git-annex examinekey SHA256--xxx --migrate-to-backend=SHA256E --filename=foo.tar.gz

-

  Or to remove the extension from a key:

-

   git-annex examinekey SHA256E--xxx.tar.gz --migrate-to-backend=SHA256

-

  - **--filename=name**

  The name of a file associated with the key, eg a work tree file. It does not need to exist. This is needed when using **--migrate-to-backend** to add an extension to the key.

-

  - **--batch**

  Enable batch mode, in which a line containing a key is read from stdin, the information about it is output to stdout, and repeat.

-

  In order to also provide the name of a file associated with the key, the line can be in the format "$key $file"

-

  - Also the [git-annex-common-options(1)](/git-annex-common-options/1.md) can be used.

  ## SEE ALSO

[git-annex(1)](/git-annex/1.md)

## AUTHOR

Joey Hess \<id@joeyh.name\>
