---
name: "git-annex-matching-expression"
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-matching-expression"
---

# git-annex-matching-expression(1)

specifying a set of files

## NAME

git-annex-matching-expression - specifying a set of files

## DESCRIPTION

The annex.largefiles and annex.addunlocked configurations both use expressions that match some files in the working tree.

## SYNTAX

The format of these expressions is similar to [git-annex-preferred-content(1)](/git-annex-preferred-content/1.md) expressions.

For example:

 largerthan=100kb and not (include=\*.c or include=\*.h)

This matches large files, but excludes C source files.

The following terms can be used:

- **include=glob** / **exclude=glob**

  Specify files to include or exclude.

-

  The glob can contain **\*** and **?** to match arbitrary characters.

-

  Note that this matches on the whole filename, relative to the top  of the git directory. So, **include=foo** will include a file **foo** in the top, but not **subdir/foo**. To include both, use  **include=foo or include=\*/foo**

-

  - **smallerthan=size** / **largerthan=size**

  Matches only files smaller than, or larger than the specified size.

-

  The size can be specified with any commonly used units, for example, "0.5 gb" or "100 KiloBytes"

-

  - **mimetype=glob**

  Looks up the MIME type of a file, and checks if the glob matches it.

-

  For example, **"mimetype=text/\*"** will match many varieties of text files, including "text/plain", but also "text/x-shellscript", "text/x-makefile", etc.

-

  The MIME types are the same that are displayed by running **file --mime-type**

-

  This only matches when the content of the file is present in the local repository. Usually that is the case, but eg, when importing from a special remote with --no-content, the content is usually not present.

-

  This is only available to use when git-annex was built with the MagicMime build flag.

-

  - **mimeencoding=glob**

  Looks up the MIME encoding of a file, and checks if the glob matches it.

-

  For example, **"mimeencoding=binary"** will match many kinds of binary files.

-

  The MIME encodings are the same that are displayed by running **file --mime-encoding**

-

  This only matches when the content of the file is present in the local repository. Usually that is the case, but eg, when importing from a special remote with --no-content, the content is usually not present.

-

  This is only available to use when git-annex was built with the MagicMime build flag.

-

  - **anything**

  Matches any file.

-

  - **nothing**

  Matches no files. (Same as "not anything")

-

  - **not expression**

  Inverts what the expression matches.

-

  - **and** / **or** / **( expression )**

  These can be used to build up more complicated expressions.

-

  ## SEE ALSO

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

## AUTHOR

Joey Hess \<id@joeyh.name\>

\<http://git-annex.branchable.com/\>
