tracker tag FILE1 [FILE2 ...] [-l <limit>] [-o <offset>] [-r] tracker tag -t [[TAG1] [TAG2] ...] [-s] [-r] tracker tag -a <TAG> [-e <description>] tracker tag -d <TAG>
It's also possible to manage tags with the -a and and -d options.
The FILE argument can be either a local path or a URI. It also does not have to be an absolute path.
The TAG arguments are optional. If no TAG argument is specified, all tags are listed. If one or more TAGs are given, either matching tags are listed (OR condition). For example, this will match any tags named either foo, bar or baz:
$ tracker-tag -t foo bar baz
$ tracker-tag -s -t sliff sloff
Should show files in the database that have both the sliff and sloff tags.
With "direct" the connection to the database is made directly to the file itself on the disk, there is no intermediary daemon or process. The "direct" approach is purely read-only.
With "bus" the tracker-store process is used to liase with the database queuing all requests and managing the connections via an IPC / D-Bus. This adds a small overhead BUT this is the only approach you can use if you want to write to the database.
With "auto" the backend is decided for you, much like it would be if this environment variable was undefined.