f8bc208e89
I've long been asked for `git-annex find --all` or something like that, but pushed back on it because I feel that the command is analagous to find(1) and so it would be surprising for it to list keys rather than files. So instead, add a new findkeys subcommand. Note that the use of withKeyOptions is rather strange because usually that is used to fall back to --all rather than listing files, but here it's made to default to --all like behavior and never list files. A performance thing that could be improved is that withKeyOptions always reads and caches location logs. But findkeys with no options does not need them, so it could be made faster. That caching does speed up options like --in though. This is really just a subset of a more general performance thing that --all reads location logs sometimes unncessarily. Anyway, it needs to read the location log in order to checkDead, and it seems good that findkeys does skip dead keys. Also, cleaned up comments on git-annex-find man page asking for --all option. Sponsored-by: Dartmouth College's DANDI project
94 lines
2.3 KiB
Markdown
94 lines
2.3 KiB
Markdown
# NAME
|
|
|
|
git-annex find - lists available files
|
|
|
|
# SYNOPSIS
|
|
|
|
git annex find `[path ...]`
|
|
|
|
# DESCRIPTION
|
|
|
|
Outputs a list of annexed files in the specified path. With no path,
|
|
finds files in the current directory and its subdirectories.
|
|
|
|
# OPTIONS
|
|
|
|
* matching options
|
|
|
|
The [[git-annex-matching-options]](1)
|
|
can be used to specify files to list.
|
|
|
|
By default, the find command only lists annexed files whose content is
|
|
currently present. Specifying any of the matching options will override
|
|
this default behavior.
|
|
|
|
To list all annexed files, present or not, specify `--anything`.
|
|
|
|
To list annexed files whose content is not present, specify `--not --in=here`
|
|
|
|
* `--branch=ref`
|
|
|
|
List files in the specified branch or treeish.
|
|
|
|
* `--print0`
|
|
|
|
Output filenames terminated with nulls, for use with `xargs -0`
|
|
|
|
* `--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 in a variable, use '${escaped_var}'
|
|
|
|
These variables are available for use in formats: file, key, backend,
|
|
bytesize, humansize, keyname, hashdirlower, hashdirmixed, mtime (for
|
|
the mtime field of a WORM key).
|
|
|
|
Also, '\\n' is a newline, '\\000' is a NULL, etc.
|
|
|
|
The default output format is the same as `--format='${file}\\n'`
|
|
|
|
* `--json`
|
|
|
|
Output the list of files in JSON format.
|
|
|
|
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.
|
|
|
|
* `--batch`
|
|
|
|
Enables batch mode, in which a file is read in a line from stdin,
|
|
its information displayed, and repeat.
|
|
|
|
Note that if the file is not an annexed file, or is not present,
|
|
or otherwise doesn't meet the matching options, an empty line
|
|
will be output instead.
|
|
|
|
* `-z`
|
|
|
|
Makes the `--batch` input be delimited by nulls instead of the usual
|
|
newlines.
|
|
|
|
* Also the [[git-annex-common-options]](1) can be used.
|
|
|
|
# SEE ALSO
|
|
|
|
[[git-annex]](1)
|
|
|
|
[[git-annex-whereis]](1)
|
|
|
|
[[git-annex-findkeys]](1)
|
|
|
|
# AUTHOR
|
|
|
|
Joey Hess <id@joeyh.name>
|
|
|
|
Warning: Automatically converted into a man page by mdwn2man. Edit with care.
|