Taggo is most usefull if you use it on the commandline

Files and folders example layout:

root@4c95ee980234:/# find /data/
/data/2016/best taco #recipes-dinner.txt
/data/2016/python snippets #projects-programming-python.txt
/data/2017/#traveling-london/places to visit.txt
/data/2017/#traveling-london/airplane tickets.pdf
/data/2015/chocolate cake #recipes-cake.txt
/data/2015/truffle chicken #recipes-dinner.txt
/data/2015/#important note.txt

Difference between –filter and –filter-query

TLDR: If possible, use –filter for speed :)

The longer story, is that –filter knows what you are filtering on, before it completes all the metadata-addon calculations. This is because the correct filter gets checked after each metadata calculation. Example, when the stat addon is done, the stat filters are checked. If the filter dictates that it should skip the file, no more metadata calculation is done for that file. This is usefull and can save you some time. However, there are some big cons using the –filter:

  • You wont be able to filter on data that is not flat. Example, there are no way to filter on paths[]…
  • It is not that powerfull, and doing logical AND, OR, NOT and such are a pain.

The –filter-query is using jmespath, and it have a very powerfull querylanguage. It can handle more logic, and is much more powerfull than –filter. However.. There are some cons:

  • It depends on a 3rd party lib (pip install jmespath)
  • The filter are checked once per file, after all metadata addons are calculated.

Both filter-types can however be combined.. So you can do a quick check using –filter, then a more advanced check later using –filter-query


Symlinks that are dead can be cleaned up easiely:

root@4c95ee980234:/# rm "/data/2016/best taco #recipes-dinner.txt"

root@4c95ee980234:/# taggo cleanup tags/
Deleting symlink /tags/recipes/dinner/2016 - best taco #recipes-dinner.txt

List tags

To list tags available in a source directory:

root@4c95ee980234:/# taggo info data/
Folder tags:

File tags:

Rename tags

You can also rename tags if you want them nested another way, or just got a typo:

root@4c95ee980234:/# taggo rename data/ traveling-london traveling-uk-london
Renaming: /data/2017/{#traveling-london -> #traveling-uk-london}

root@4c95ee980234:/# taggo cleanup tags/
Deleting symlink /tags/traveling/london/2017_#traveling-london - #traveling-london
Removing empty folder: /tags/traveling/london
Removing empty folder: /tags/traveling

root@4c95ee980234:/# taggo run data tags